如何取消NSURLSessionDataTask' Inside'一个RACSignal

时间:2016-07-14 22:04:29

标签: ios objective-c reactive-cocoa nsurlsessiondatatask racsignal

我正在使用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;而且我不确定这是否会取消它包含或不包含的请求。任何帮助表示赞赏。

0 个答案:

没有答案