我使用 flattenMap 转换信号中的任何新值,并且我想根据某些条件停止进程,而不是错误,而是完成状态。下面提到的代码不允许这样做。它只是过滤一些值。如何从 flattenMap 完成?
RACSignal* anySignal = //
[ [ anySignal
flattenMap: ^(id _)
{
return [ RACSignal empty ];
} ]
subscribeCompleted:
^{
NSLog(@"Not Called");
}];
最佳答案
-flattenMap:
在所有相关信号完成之前不会完成,这意味着 -flattenMap:
的信号被调用,以及从 map block 返回的信号。要完成信号,请查看 -takeUntilBlock:
和 -takeWhileBlock:
.
关于ios - 为什么从 flattenMap 返回 empty 不会触发 subscribeCompleted,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26378560/