2016-03-02 91 views
4

如果我有兩個SignalProducers(實際上它們是API服務請求,所以它們只發送'next'一次),並將它們與combineLatest結合起來(因爲我想在完成時關閉加載微調器),如果其中一個失敗?或者兩者都失敗?用combineLatest發生的個別故障會發生什麼?

組合信號是否被調用(一次或兩次?)?

如果一個失敗,另一個成功,將在組合信號上調用'下一個'?

回答

5

任何信號失敗都會導致整個組合信號出錯並停止訂閱。

如果一個信號發送其第一個下一個信號,而另一個信號發送錯誤作爲其第一個值,則下一個信號將丟失,combineLatest:僅在所有信號發送它們的第一個下一個值時才被調用。

subscribeError:只被調用一次。錯誤以一種單向的方式工作,在這些方式中,他們冒出連鎖並停止整個信號。

如果你想顛覆這個,那麼你可以使用catch:,catchTo:retry方法來處理錯誤。 (對不起,談論Objective-C方法,我不知道Swift語法)。

+1

非常感謝Thankyou,祝你有個美好的一週:) – Chris