Rxjava條件和布林操作符

2021-08-21 19:01:06 字數 2513 閱讀 4503

條件操作符

作用amb

給定多個observable,只讓第乙個發射資料的observable發射資料

defaultifempty

發射來自原始的observable的資料,如果原始observable沒有發射資料則發射乙個預設資料

skiputil

丟棄原始observable發射的資料,直到第二個observable發**乙個資料然後發射原始observable的剩餘資料

skipwhile

丟棄原始observable發射的資料,直到乙個特定的條件為假,然後發射原始observable剩餘的資料

takeutile

發射來自原始observable的資料,直到第二個observable發**乙個資料或乙個通知

takewhile

發射原始observable的資料,直到乙個特定條件為真,然後跳過剩餘的資料。

amb給兩個或多個observable,它只會發射首先發射資料的observable的全部資料

//輸出結果 1,2,3

observable.ambarray(

observable.just(1,2,3), observable.just(4,5,6)

).subscribe(s -> system.out

.println(s));

//給第乙個observable新增延遲,結果將是 4,5,6

observable.ambarray(

observable.just(1,2,3).delay(1, timeunit.seconds), observable.just(4,5,6)

).subscribe(s -> system.out

.println(s));

skiputil skipwhile
//過時間4s後,第二個observable發**乙個資料,則第乙個observable會發射剩下的全部資料

observable.intervalrange(1,9, 0, 1 ,timeunit.seconds) //第乙個observable

.skipuntil(observable.timer(4, timeunit.seconds)) //第二個observable

.subscribe(s -> system.out

.println(s));

//雖然訂閱了observable,但忽略了它的全部資料,直到skipwhile的條件不成立,則發射全部剩下的資料。

observable.just(1,2,3,4,5)

.skipwhile(s -> s<=2)

.subscribe(result -> system.out

.println(result));

takeutil takewhile

他們與skip性質的操作符正好相反

//資料正常接受,但當發射資料3時,這時候takeutil中就會發射乙個資料,之後observable的後續資料就會全部丟棄

//輸出為 1,2,3

observable.just(1,2,3,2,5)

.takeuntil(s -> s==3)

.subscribe(result -> system.out

.println(result));

//當資料傳送4時,條件不成立,則會丟棄4及4以後的資料

//輸出為 1,23

observable.just(1,2,3,4,5)

.takewhile(s-> s <=3)

.subscribe(result -> system.out

.println(result));

布林操作符

作用all

判斷是否所有資料都滿足條件

contains

判斷observable發射的資料是否包含乙個特定的值

exists, isempty

判斷observable是否發**乙個值

sequenceequal

判斷兩個observables發射的序列是否相等

all 與contains

//這裡輸出的是 true,判斷結果。

observable.just(1,2,3)

.all(i -> i<10)

.subscribe(s -> system.out

.println(s));

//判斷結果 輸出 true

observable.just(1,2,3)

.contains(2)

.subscribe(s -> system.out

.println(s));

sequenceequal
observable.sequenceequal(observable.just(1,2,3), observable.just(1,2,3))

.subscribe(s -> system.out

.println(s));

RxJava條件操作符

1 all 判斷事件序列是否全部滿足某個事件,如果都滿足則返回true,反之返回false 方法簽名 public final observableambwith observablesource other observable.just 1,2,3,4 all new predicate int...

RxJava筆記 RxJava操作符

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

RxJava操作符學習

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