簡介
總結(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ù)更新。