【发布时间】:2014-12-17 19:21:28
【问题描述】:
我正在尝试实现代码,所以我可以序列化网络请求,基本上,下一个请求应该只有在第一个请求完成后才开始。我也想订阅这些请求,所以我可以处理错误。代码如下:
- (RACSignal * ) sendRequest: (Request *) request{
[[[RACSignal return:nil
deliverOn: [RACScheduler scheduler]
mapReplace: [self.network sendRequest]]; // A different thread is spawned to execute the request
}
它被称为:
[self sendRequest:request
subscribeNext: ^(id x) {
NSLog(@"Request has been sent");
}];
注意sendRequest可以从多个线程并行调用,所以请求需要排队。
将请求放在同一个调度程序上,没有用,因为发送发生在另一个线程上,下一个请求在前一个完成之前被拾取。
我还研究了使用RACSubject 可以帮助缓冲请求,但它是很好的一劳永逸。
【问题讨论】:
标签: ios reactive-cocoa