如果我有两个 SignalProducers(实际上它们是 API 服务请求,所以它们只发送一次“下一个”),并将它们与 combineLatest 组合(因为我想在两者完成后关闭加载微调器),如果其中一个会发生什么失败?或者两者都失败了?
“失败”是否在组合信号上被调用(一次或两次?)?
如果一个失败而另一个成功,是否会在组合信号上调用“next”?
最佳答案
任何信号的失败都会导致整个组合信号出错并停止订阅。
如果一个信号发送其第一个下一个值,而另一个信号发送一个错误作为其第一个值,则下一个信号将丢失,combineLatest:
仅在所有信号发送其第一个下一个值时调用。
subscribeError:
只被调用一次。错误以单子(monad)方式工作,它们在链中向上冒泡并停止整个信号。
如果你想颠覆这个,那么你可以使用 catch:
、catchTo:
或 retry
方法来处理错误。
(很抱歉谈论 Objective-C 方法,我不知道 Swift 语法)。
关于swift - combineLatest 的个别失败会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35759884/