-
這個頁面展示了創建Observable的各種方法。
**just(?)
** — 將一個或多個對象轉換成發射這個或這些對象的一個Observable
**from(?)
** — 將一個Iterable, 一個Future, 或者一個數組轉換成一個Observable
**repeat(?)
** — 創建一個重復發射指定數據或數據序列的Observable
**repeatWhen(?)
** — 創建一個重復發射指定數據或數據序列的Observable,它依賴于另一個Observable發射的數據
**create(?)
** — 使用一個函數從頭創建一個Observable
**defer(?)
** — 只有當訂閱者訂閱才創建Observable;為每個訂閱創建一個新的Observable
**range(?)
** — 創建一個發射指定范圍的整數序列的Observable
**interval(?)
** — 創建一個按照給定的時間間隔發射整數序列的Observable
**timer(?)
** — 創建一個在給定的延時之后發射單個數據的Observable
**empty(?)
** — 創建一個什么都不做直接通知完成的Observable
**error(?)
** — 創建一個什么都不做直接通知錯誤的Observable
**never(?)
** — 創建一個不發射任何數據的Observable
-
這個頁面展示了可用于對Observable發射的數據執行變換操作的各種操作符。
**map(?)
** — 對序列的每一項都應用一個函數來變換Observable發射的數據序列
flatMap(?), concatMap(?), and flatMapIterable(?) — 將Observable發射的數據集合變換為Observables集合,然后將這些Observable發射的數據平坦化的放進一個單獨的Observable
**switchMap(?)
** — 將Observable發射的數據集合變換為Observables集合,然后只發射這些Observables最近發射的數據
**scan(?)
** — 對Observable發射的每一項數據應用一個函數,然后按順序依次發射每一個值
**groupBy(?)
** — 將Observable分拆為Observable集合,將原始Observable發射的數據按Key分組,每一個Observable發射一組不同的數據
**buffer(?)
** — 它定期從Observable收集數據到一個集合,然后把這些數據集合打包發射,而不是一次發射一個
**window(?)
** — 定期將來自Observable的數據分拆成一些Observable窗口,然后發射這些窗口,而不是每次發射一項
**cast(?)
** — 在發射之前強制將Observable發射的所有數據轉換為指定類型
-
這個頁面展示的操作符可用于過濾和選擇Observable發射的數據序列。
**filter(?)
** — 過濾數據
**takeLast(?)
** — 只發射最后的N項數據
**last(?)
** — 只發射最后的一項數據
**lastOrDefault(?)
** — 只發射最后的一項數據,如果Observable為空就發射默認值
**takeLastBuffer(?)
** — 將最后的N項數據當做單個數據發射
**skip(?)
** — 跳過開始的N項數據
**skipLast(?)
** — 跳過最后的N項數據
**take(?)
** — 只發射開始的N項數據
**first(?)
and takeFirst(?)
** — 只發射第一項數據,或者滿足某種條件的第一項數據
**firstOrDefault(?)
** — 只發射第一項數據,如果Observable為空就發射默認值
**elementAt(?)
** — 發射第N項數據
**elementAtOrDefault(?)
** — 發射第N項數據,如果Observable數據少于N項就發射默認值
**sample(?)
or throttleLast(?)
** — 定期發射Observable最近的數據
**throttleFirst(?)
** — 定期發射Observable發射的第一項數據
**throttleWithTimeout(?)
or debounce(?)
** — 只有當Observable在指定的時間后還沒有發射數據時,才發射一個數據
**timeout(?)
** — 如果在一個指定的時間段后還沒發射數據,就發射一個異常
**distinct(?)
** — 過濾掉重復數據
**distinctUntilChanged(?)
** — 過濾掉連續重復的數據
**ofType(?)
** — 只發射指定類型的數據
**ignoreElements(?)
** — 丟棄所有的正常數據,只發射錯誤或完成通知
-
這個頁面展示的操作符可用于組合多個Observables。
**startWith(?)
** — 在數據序列的開頭增加一項數據
**merge(?)
** — 將多個Observable合并為一個
**mergeDelayError(?)
** — 合并多個Observables,讓沒有錯誤的Observable都完成后再發射錯誤通知
**zip(?)
** — 使用一個函數組合多個Observable發射的數據集合,然后再發射這個結果
**and(?)
, then(?)
, and when(?)
** — (rxjava-joins
) 通過模式和計劃組合多個Observables發射的數據集合
**combineLatest(?)
** — 當兩個Observables中的任何一個發射了一個數據時,通過一個指定的函數組合每個Observable發射的最新數據(一共兩個數據),然后發射這個函數的結果
**join(?)
and groupJoin(?)
** — 無論何時,如果一個Observable發射了一個數據項,只要在另一個Observable發射的數據項定義的時間窗口內,就將兩個Observable發射的數據合并發射
**switchOnNext(?)
** — 將一個發射Observables的Observable轉換成另一個Observable,后者發射這些Observables最近發射的數據
(rxjava-joins) — 表示這個操作符當前是可選的rxjava-joins包的一部分,還沒有包含在標準的RxJava操作符集合里
很多操作符可用于對Observable發射的onError
通知做出響應或者從錯誤中恢復,例如,你可以:
吞掉這個錯誤,切換到一個備用的Observable繼續發射數據
吞掉這個錯誤然后發射默認值
吞掉這個錯誤并立即嘗試重啟這個Observable
吞掉這個錯誤,在一些回退間隔后重啟這個Observable
這是操作符列表:
**onErrorResumeNext(?)
** — 指示Observable在遇到錯誤時發射一個數據序列
**onErrorReturn(?)
** — 指示Observable在遇到錯誤時發射一個特定的數據
**onExceptionResumeNext(?)
** — instructs an Observable to continue emitting items after it encounters an exception (but not another variety of throwable)指示Observable遇到錯誤時繼續發射數據
**retry(?)
** — 指示Observable遇到錯誤時重試
**retryWhen(?)
** — 指示Observable遇到錯誤時,將錯誤傳遞給另一個Observable來決定是否要重新給訂閱這個Observable
-
這個頁面列出了很多用于Observable的輔助操作符
**materialize(?)
** — 將Observable轉換成一個通知列表convert an Observable into a list of Notifications
**dematerialize(?)
** — 將上面的結果逆轉回一個Observable
**timestamp(?)
** — 給Observable發射的每個數據項添加一個時間戳
**serialize(?)
** — 強制Observable按次序發射數據并且要求功能是完好的
**cache(?)
** — 記住Observable發射的數據序列并發射相同的數據序列給后續的訂閱者
**observeOn(?)
** — 指定觀察者觀察Observable的調度器
**subscribeOn(?)
** — 指定Observable執行任務的調度器
**doOnEach(?)
** — 注冊一個動作,對Observable發射的每個數據項使用
**doOnCompleted(?)
** — 注冊一個動作,對正常完成的Observable使用
**doOnError(?)
** — 注冊一個動作,對發生錯誤的Observable使用
**doOnTerminate(?)
** — 注冊一個動作,對完成的Observable使用,無論是否發生錯誤
**doOnSubscribe(?)
** — 注冊一個動作,在觀察者訂閱時使用
**doOnUnsubscribe(?)
** — 注冊一個動作,在觀察者取消訂閱時使用
**finallyDo(?)
** — 注冊一個動作,在Observable完成時使用
**delay(?)
** — 延時發射Observable的結果
**delaySubscription(?)
** — 延時處理訂閱請求
**timeInterval(?)
** — 定期發射數據
**using(?)
** — 創建一個只在Observable生命周期存在的資源
**single(?)
** — 強制返回單個數據,否則拋出異常
**singleOrDefault(?)
** — 如果Observable完成時返回了單個數據,就返回它,否則返回默認數據
**toFuture(?)
**, **toIterable(?)
**, **toList(?)
** — 將Observable轉換為其它對象或數據結構
-
這個頁面的操作符可用于根據條件發射或變換Observables,或者對它們做布爾運算:
-
條件操作符
**amb(?)
** — 給定多個Observable,只讓第一個發射數據的Observable發射全部數據
**defaultIfEmpty(?)
** — 發射來自原始Observable的數據,如果原始Observable沒有發射數據,就發射一個默認數據
(rxjava-computation-expressions
) **doWhile(?)
** — 發射原始Observable的數據序列,然后重復發射這個序列直到不滿足這個條件為止
(rxjava-computation-expressions
) **ifThen(?)
** — 只有當某個條件為真時才發射原始Observable的數據序列,否則發射一個空的或默認的序列
**skipUntil(?)
** — 丟棄原始Observable發射的數據,直到第二個Observable發射了一個數據,然后發射原始Observable的剩余數據
**skipWhile(?)
** — 丟棄原始Observable發射的數據,直到一個特定的條件為假,然后發射原始Observable剩余的數據
(rxjava-computation-expressions
) **switchCase(?)
** — 基于一個計算結果,發射一個指定Observable的數據序列
**takeUntil(?)
** — 發射來自原始Observable的數據,直到第二個Observable發射了一個數據或一個通知
**takeWhile(?)
and takeWhileWithIndex(?)
** — 發射原始Observable的數據,直到一個特定的條件為真,然后跳過剩余的數據
(rxjava-computation-expressions
) **whileDo(?)
** — if a condition is true, emit the source Observable's sequence and then repeat the sequence as long as the condition remains true如果滿足一個條件,發射原始Observable的數據,然后重復發射直到不滿足這個條件為止
(rxjava-computation-expressions) — 表示這個操作符當前是可選包 rxjava-computation-expressions
的一部分,還沒有包含在標準RxJava的操作符集合里
-
布爾操作符
**all(?)
** — 判斷是否所有的數據項都滿足某個條件
**contains(?)
** — 判斷Observable是否會發射一個指定的值
**exists(?)
and isEmpty(?)
** — 判斷Observable是否發射了一個值
**sequenceEqual(?)
** — test the equality of the sequences emitted by two Observables判斷兩個Observables發射的序列是否相等