我正在使用Reactive Cocoa来合并&像这样收集多个网络请求(如RACSignals):
[[[RACSignal merge:requestSignals] collect] subscribeNext:^(NSArray *results){...}
每个单独的RACSignal都是这样创建的:
- (RACSignal *)signalForMyRequest { RACSignal *signal =
[RACSignal createSignal:^RACDisposable
(id<RACSubscriber> subscriber) {
NSURLSessionDataTask *task = [self myRequest success:nil failure:nil];
return [RACDisposable disposableWithBlock:^{
[task cancel];
}];
}];
return signal;
}
一切正常。我的问题是:有没有办法取消单个RAC信号内的实际请求(即NSURLSessionDataTask
)?我在合并信号上使用subscribeNext:
块,它返回一个RACDisposable
- 我可以处理,但这适用于整个合并操作而不是单个信号。我在看takeUntil:
之类的东西,但这被描述为&#34;释放信号&#34;而且我不确定这是否会取消它包含或不包含的请求。任何帮助表示赞赏。