RxJava 學習筆記<十四> merge 操做符

merge

merge 能夠將一組 observables 合併爲一組,由此產生的 observables 的發射值 由源observables 到發射值,這意味着發出的值來之不一樣序列的值。ios

merge有許多重載是提供一組可觀測數據以進行合併的不一樣方法,下面是一個Merge作什麼的例子git

輸出:github

conat 和 merge 之間的區別在於,merge 不等待當前可觀察到的終止後才轉移到下一個。merge 訂閱它所能看到的每個可觀察到的項,並在它們出現時發出項。在這種方式下,合併相似於 flatMap 的 flattening 部分。微信

與其餘靜態方法的組合程序同樣,merge 有一個替代方法,容許您在鏈中逐個合併序列。該運算符稱爲mergewith,其行爲是相同的。下面的示例與上面的示例具備相同的結果。spa

mergeDelayErrorit

對於 merge,只要任何源序列失敗,合併序列也會失敗。該行爲的另外一個替代方法是MergeDelayError,它將延遲錯誤的釋放,並繼續合併無失敗的序列中的值。io

在下一個例子中,咱們合併兩個每隔100ms發射一次的觀測值。一個早期失敗,而另外一個可觀察到的繼續完成。ast

輸出:程序

在開始時,兩個可觀測物發出相同的值。在值 1 以後,第一個序列失敗,合併後的序列只使用第二個序列中的值繼續。方法

當合並兩個以上的序列時,合併後的序列將繼續,直到全部源都成功終止或出現錯誤。若是多個序列失敗,則合併序列中的錯誤類型爲CompositeException。

輸出:

 

原文連接:

https://github.com/Froussios/Intro-To-RxJava/blob/master/Part%203%20-%20Taming%20the%20sequence/4.%20Combining%20sequences.md

有什麼討論的內容,能夠加我微信公衆號:

相關文章
相關標籤/搜索