使用combineLatest会导致个别故障发生什么?

时间:2016-03-02 22:57:11

标签: swift reactive-cocoa reactive-cocoa-4

如果我有两个SignalProducer(实际上它们是API服务请求,所以它们只发送' next'一次),并将它们与combineLatest结合起来(因为我想在两次完成后解除加载微调器),如果其中一个失败了?或两者都失败了?

'失败'在组合信号上被叫(一次或两次?)?

如果一个失败而另一个失败,那么下一个会是'被称为组合信号?

1 个答案:

答案 0 :(得分:5)

任何信号失败都会导致整个组合信号出错并停止订阅。

如果一个信号发送第一个信号而另一个信号发送错误作为其第一个值,则下一个信号将丢失,combineLatest:仅在所有信号发送其第一个下一个值时被调用。

subscribeError:只被调用一次。错误以一元的方式工作,它们会使链条冒泡并停止整个信号。

如果您想颠覆这一点,那么您可以使用catch:catchTo:retry方法来处理错误。

(很抱歉,谈论Objective-C方法,我不知道Swift语法)。