我正在使用 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;
}
这一切都很好。我的问题是:有没有办法取消NSURLSessionDataTask
单个 RAC 信号中的实际请求(即 )?我subscribeNext:
在合并信号上使用了一个块,它返回一个RACDisposable
- 我可以处理它,但这适用于整个合并操作而不是单个信号。我在看类似的东西,takeUntil:
但这被描述为“释放信号”,我不确定这是否会反过来取消它包含的请求。任何帮助表示赞赏。