Rxjava合併,連線操作符

2021-08-21 19:13:46 字數 1590 閱讀 8226

合併操作符

作用startwith

在observable發射的資料前新增乙個資料,

merge, mergedelayerror

將多個observable合併為乙個,mergedelayerror,是全部observable發射完執行onerror

zip使用乙個函式組合多個observable發射的資料,然後再發射這個合併資料的結果

combinelatest

當兩個observable中任何乙個發**乙個資料時,通過乙個指定的函式組合兩個observable發射的最新資料,然後發射組合的結果

join

無論何時,乙個observable發**乙個資料,都需要跟另乙個observable發射的所有資料項合併發射

switchonnext

將乙個發射observable的observable轉換成另乙個observable,後者發射這些observable最近發射的資料

merge, mergedelayerror

合併多個observable,merge是按照時間線執行的,如果發射過程中有乙個有onerror,則全部都會停止。如果想讓所有的observable全部發射完資料,直到最後才報告onerror,就使用mergedelayerror.

//輸出1,2,3,4,5,6

observableodds = observable.just(1,2,3);

observableevens = observable.just(4,5,6);

observable.merge(odds, evens)

.subscribe(s -> system.out

.println(s));

zip

通過乙個函式將多個observable的發射物結合到一起,基於這個函式的結果,為每個結合體發射單個資料項。

若兩個observable發射資料量不同,則只會截止到發射資料量最少的那個。

//連個observable的資料項相加,輸出的為  5,7,9, 不會再操作 4,5

observable<

integer

> odds = observable.just(1,2,3,4,5);

observable<

integer

> evens = observable.just(4,5,6);

observable.zip(odds, evens, new bifunction<

integer, integer, integer

>()

}).subscribe(s -> system.out.println(s));

combinelastest

連線操作符

服用connectableobservable.connect

指示乙個可連線的observable開始發射資料

observable。publish

將乙個observable轉換為乙個可連線的observable

observable.replay

確保所有訂閱者開到相同的資料序列,即使他們在observable開發發射資料之後才訂閱

RxJava筆記 RxJava操作符

用來建立observable。public static observablecreate onsubscribef 把其他型別的物件和資料型別轉化成observable。observable.just 123 把其他型別的物件和資料型別轉化成observable。與just區別在與引數返回值不同 ...

RxJava操作符學習

操作符學習推薦閱讀 官方英文 翻譯中文 先來看乙個簡單的例子 被觀察者 observable.onsubscribeintegeronsubscribe new observable.onsubscribe 觀察者 subscriberintegersubscriber new subscriber...

RxJava常用操作符

用於建立observable 被觀察者 的操作符 用於對observable發出的資料進行變換的操作符 用於從observable發射的資料中選擇性的過濾一些資料的操作符 用於將多個observable組合成乙個單一的observable的操作符 有助於從observable的錯誤通知中恢復的操作符...