我使用flattenMap从信号转换任何新值,我想根据某些条件停止处理,而不是错误,但是已完成状态。下面提到的代码不允许这样做。它只是过滤了一些价值。如何从flattenMap完成?
RACSignal* anySignal = //
[ [ anySignal
flattenMap: ^(id _)
{
return [ RACSignal empty ];
} ]
subscribeCompleted:
^{
NSLog(@"Not Called");
}];
答案 0 :(得分:5)
-flattenMap:
在完成所有相关信号之前不会完成,这意味着调用了-flattenMap:
的信号,以及从地图块返回的信号。要完成信号,请查看-takeUntilBlock:
和-takeWhileBlock:
。