2

我正在使用 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:但这被描述为“释放信号”,我不确定这是否会反过来取消它包含的请求。任何帮助表示赞赏。

4

0 回答 0