4

如果我有两个 SignalProducers(实际上它们是 API 服务请求,因此它们只发送一次“下一个”),并将它们与 combineLatest 结合起来(因为我想在两者都完成后关闭加载微调器),如果其中一个失败会发生什么?还是两者都失败?

组合信号是否会调用“失败”(一次或两次?)?

如果一个失败而另一个成功,是否会在组合信号上调用“下一个”?

4

1 回答 1

5

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

如果一个信号下一个发送它的第一个信号,而另一个信号发送一个错误作为它的第一个值,那么下一个信号将丢失,combineLatest:只有在所有信号都发送它们的第一个下一个值时才被调用。

subscribeError:只调用一次。错误以一种单子的方式工作,它们在链中冒泡并停止整个信号。

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

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

于 2016-03-02T23:05:17.390 回答