为什么从flattenMap返回空不会触发subscribeCompleted

时间:2014-10-15 09:05:05

标签: ios reactive-cocoa racsignal

我使用flattenMap从信号转换任何新值,我想根据某些条件停止处理,而不是错误,但是已完成状态。下面提到的代码不允许这样做。它只是过滤了一些价值。如何从flattenMap完成?

RACSignal* anySignal = //
[ [ anySignal
 flattenMap: ^(id _)
 {
    return [ RACSignal empty ];
 } ]
subscribeCompleted:
^{
   NSLog(@"Not Called");
}];

1 个答案:

答案 0 :(得分:5)

-flattenMap:在完成所有相关信号之前不会完成,这意味着调用了-flattenMap:的信号,以及从地图块返回的信号。要完成信号,请查看-takeUntilBlock:-takeWhileBlock: