Я изучаю ReactiveCocoa и пытаюсь выяснить, что возможно. Проблемы, которые возникают у меня, связаны друг с другом несколькими сетевыми запросами.Объединить несколько сетевых запросов с помощью ReactiveCocoa
У меня есть 2 вызова, первый получает список идентификаторов, затем для каждого идентификатора я делаю вызов, чтобы получить данные, соответствующие этому id, и создать объект модели и вернуть массив объектов.
Я использую RACExtensions для AFNetworking для выполнения запросов. Код выглядит примерно так:
- (RACSignal *) identifersInfo
{
return [[[[self identifiersSignal] flattenMap:^RACStream *(RACTuple *tuple) {
RACTupleUnpack(AFHTTPRequestOperation *operation, id responseObject) = tuple;
NSArray *identifiers = responseObject[@"Identifiers"];
NSArray *requests = [self httpRequestsWithIdentifiers: identifiers];
return [self.client rac_enqueueBatchOfHTTPRequestOperationsWithRequests: requests];
}] collect] map:^id(RACTuple *tuple) {
RACTupleUnpack(AFHTTPRequestOperation *operation, id responseObject) = tuple;
Model *model = [[Model alloc] init];
model.title = responseObject[@"Title"];
model.description = responseObject[@"Description"];
model.lastUpdated = responseObject[@"LastUpdated"];
return model;
}];
}
identifiersSignal метод выглядит следующим образом:
- (RACSignal *) identifiersSignal
{
return [self.client rac_getPath: @"identifiers" parameters: nil];
}
Это возвращает JSON словарь, который выглядит как:
{
"Identifiers": [
3,
4,
21
]
}
Я на самом деле издевается эти вызовы на данный момент, и я знаю, что они работают независимо, я просто пытаюсь собрать их вместе с помощью ReacticeCocoa.
Я не могу найти или найти достойные образцы того, как это можно достичь с помощью ReactiveCocoa, хотя я уверен, что это может быть.
Задать вопрос «[Зависимые от цепи сигналы в ReactiveCocoa] (http://stackoverflow.com/questions/15797081/chaining-dependent-signals-in-reactivecocoa/15827396)» и аналогичный [раздел в README] (https://github.com/ReactiveCocoa/ReactiveCocoa#chaining-dependent-operations). В папке [Документация] (https://github.com/ReactiveCocoa/ReactiveCocoa/tree/master/Documentation) также имеется большая информация, как объяснение [основных операторов] (https://github.com/ ReactiveCocoa/ReactiveCocoa/блоб/ведущий/Документы/BasicOperators.md). –