RxJava常用操作符

簡介

總結(jié)一下RxJava常用的操作符,這樣方便自己查詢。

常用操作符如下

  • create()— 通過函數(shù)從頭開始創(chuàng)建一個Observable
  • delay() — 將Observable的排放量及時向前移動指定的量
  • doOnEach() — 注冊O(shè)bservable發(fā)出項(xiàng)目時要執(zhí)行的操作
  • doOnError()— 注冊O(shè)bservable出錯時要執(zhí)行的操作
  • doOnSubscribe() — 注冊觀察者訂閱Observable時要執(zhí)行的操作
  • doOnTerminate() — 在Observable成功完成或出錯時注冊要執(zhí)行的操作
  • doOnUnsubscribe() — 注冊觀察者從Observable取消訂閱時要執(zhí)行的操作
  • filter() — 過濾Observable發(fā)出的項(xiàng)
  • flatMap() — 將Observable發(fā)出的項(xiàng)轉(zhuǎn)換為Observable,然后將其展平為單個Observable
  • forEach() (BlockingObservable) —(BlockingObservable) - 對Observable發(fā)出的每個項(xiàng)調(diào)用一個函數(shù); 阻止直到Observable完成
  • from() — 將Iterable,F(xiàn)uture或Array轉(zhuǎn)換為Observable
List<Integer> list = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8));

Observable<Integer> observable = Observable.fromIterable(list);

observable.subscribe(item -> System.out.println(item), error -> error.printStackTrace(), 
     () -> System.out.println("Done"));
  • from() (StringObservable) — (StringObservable) - 將字符流或Reader轉(zhuǎn)換為發(fā)出字節(jié)數(shù)組或字符串的Observable
  • fromAction() — 將一個Action轉(zhuǎn)換為一個Observable,它調(diào)用該動作并在訂閱者訂閱時發(fā)出其結(jié)果(rxjava-async)
  • fromFuture() — 將Future轉(zhuǎn)換為Observable,但在Subscriber訂閱之前不要嘗試獲取Future的值
  • ifThen() — 如果條件為真,則僅發(fā)出源Observable的序列,否則發(fā)出空序列或缺省序列(contrib-computation-expressions)
  • isEmpty() — 確定Observable是否發(fā)出任何項(xiàng)
  • join() — 當(dāng)一個Observable中的一個項(xiàng)落入由另一個Observable發(fā)出的項(xiàng)指定的持續(xù)時間窗口內(nèi)時,組合兩個Observable發(fā)出的項(xiàng)。
  • just() — 將對象轉(zhuǎn)換為發(fā)出該對象的Observable
  • last()(BlockingObservable) — (BlockingObservable) - 阻塞直到Observable完成,然后返回Observable發(fā)出的最后一項(xiàng)
  • last() (Observable) — 僅發(fā)出源Observable發(fā)出的最后一項(xiàng)
  • map() — 通過對每個項(xiàng)應(yīng)用函數(shù)來轉(zhuǎn)換Observable發(fā)出的項(xiàng)
  • max() — 發(fā)出源Observable發(fā)出的最大值(rxjava-math)
  • maxBy() — 發(fā)出源Observable發(fā)出的具有最大鍵值的項(xiàng)(rxjava-math)
  • merge() — 將多個Observable組合成一個
  • next() — 返回一個可阻塞的迭代,直到Observable發(fā)出另一個項(xiàng),然后返回該項(xiàng)
  • min() — 發(fā)出源Observable發(fā)出的最小值(rxjava-math)
  • single() (BlockingObservable) — (BlockingObservable) - 如果源Observable在發(fā)出單個項(xiàng)后完成,則返回該項(xiàng),否則拋出異常
  • skip() — 忽略O(shè)bservable發(fā)出的前n項(xiàng)
  • skipLast() — 忽略O(shè)bservable發(fā)出的最后n個項(xiàng)
  • start() — 創(chuàng)建一個發(fā)出函數(shù)返回值的Observable(rxjava-async)
  • startFuture() — 將一個返回Future的函數(shù)轉(zhuǎn)換為一個Observable,該函數(shù)發(fā)出Future的返回值(rxjava-async)
  • startWith() — 在開始從Observable中發(fā)出項(xiàng)之前發(fā)出指定的項(xiàng)序列
  • then() — 通過Plan模板轉(zhuǎn)換一系列Pattern對象(rxjava-joins
  • timeout() — 從源Observable中發(fā)出項(xiàng),但如果在指定的時間跨度內(nèi)沒有發(fā)出任何項(xiàng),則發(fā)出異常
  • timer() — 創(chuàng)建一個Observable,在給定的延遲后發(fā)出單個項(xiàng)
  • toAsync() — 將函數(shù)或Action轉(zhuǎn)換為執(zhí)行函數(shù)并發(fā)出其返回值的Observable(rxjava-async)
  • toFuture() —將Observable轉(zhuǎn)換為Future
  • toMap() — 將Observable發(fā)出的項(xiàng)序列轉(zhuǎn)換為由指定鍵函數(shù)鍵入的映射
    *toList() — 從Observable收集所有項(xiàng)并將它們作為單個List發(fā)出
  • toMultimap() — 將Observable發(fā)出的項(xiàng)序列轉(zhuǎn)換為ArrayList,ArrayList也是由指定鍵函數(shù)鍵入的映射
  • when() —將一系列Plan對象轉(zhuǎn)換為Observable(rxjava-joins)
  • zip() — 通過指定的函數(shù)將兩個或多個Observable發(fā)出的項(xiàng)集合在一起,并根據(jù)此函數(shù)的結(jié)果發(fā)出項(xiàng)

總結(jié)

RxJava操作符有帶你多,這里只總結(jié)一些常用的,接下來在開發(fā)中會查詢到相關(guān)其他操作的用法會持續(xù)更新。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容