條件操作符
作用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));
sequenceequalobservable.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...