注:本文譯自官網連接
按功能進行分類 Operators By Category
1.創建Observable
-
Create
—以編程方式調用觀察者方法從頭開始(from scratch)創建一個Observable -
Defer
— 在觀察者訂閱之后創建Observable,并為每個觀察者創建一個新的Observable -
Empty
/Never
/Throw
— 創建具有非常精確和有限行為的Observables。 -
From
/fromArray
— 將一些其他對象或數據結構轉換為Observable。 -
Interval
— 創建一個Observable,它發出一系列整數,每間隔一段特定時間發射一個整數。 -
Just
— 將一個對象或一組對象轉換為一個可以發出該對象或那些對象的Observable。 -
Range
— 創建一個發射某一范圍連續整數的Observable,2個參數,起始值和個數 -
Repeat
— 創建一個可重復發射特定項目或項目序列的Observable -
Start
— 創建一個可以發出函數返回值的Observable 注:RxJava2中沒有該操作符 -
Timer
— 創建一個Observable,在給定的延遲后發射一個單個項目的Observable
操作轉換Observable的發射值
-
Buffer
—定期將Observable中的數據項收集到bundle包中并發出這些bundle包,而不是一次只發射一個數據 -
FlatMap
— 將Observable發射的數據項轉換為多個Observable,然后將這些Obserable平坦化為單個Observable -
GroupBy
— 將一個Observable分成一組Observable,每個Observable從原始Observable發出不同的一組數據,按鍵的值組織 -
Map
— 通過一個函數轉化每個從Observable發射出的值。 -
Scan
— 對Observable發出的每個數據項按順序應用一個函數,并發出每個連續的值. -
Window
— 定期將Observable中的數據項細分為Observable窗口并發出這些窗口,而不是一次發送一個項目
過濾Observable
從源Observable有選擇的發射數據的操作符
-
Debounce
— 如果特定的時間跨度已經過去而沒有發射另一個數據,則只從Observable發射某個數據 -
Distinct
— 去除重復數據項 -
ElementAt
— 只發射某個數據項 -
Filter
— 只發射某些通過測試(test)的數據項 -
First
— 只發射Observable中的第一個item或者第一個滿足某條件的item -
IgnoreElements
— Observable不發射任何項目,但要鏡像它的終止通知 -
Last
— 只發射最后一個item. -
Sample
— 在一個時間周期中,發射最近的item -
Skip
— 不發射前n個items -
SkipLast
— 不發射最后n個items -
Take
— 只發射前n個items -
TakeLast
— 只發射最后n個items
合并Observables
合并幾個源Observables來創建唯一一個Observable的操作符
-
And
/Then
/When
— 通過Pattern
和Plan
中介結合由兩個及以上的Observables發射的items -
CombineLatest
— 當一個item由兩個Observable發射時,通過指定的功能合并每個Observable發射的最新item,并根據此功能的結果發射item -
Join
— 當一個Observable中的item在根據另一個Observable發射的item定義的時間窗口內發射時,將兩個Observable發出的項目組合起來 -
Merge
— 通過合并多個Observables發射的items把多個Observables合并為一個Observable -
StartWith
— 返回一個Observable,先發射一個指定的值,再發射源Observable發射的值 -
Switch
— 將一個Observable轉換成一個新Observable,新Observable發射這些Observables中最近發射的item -
Zip
— 通過指定的函數將多個Observable的發射的items結合在一起,并發射結合的items
錯誤處理操作符
幫助從Observable的錯誤中恢復的操作符
Observable使用操作符
Observable的有用的工具箱
-
Delay
— 將Observable發射的數據推遲一定時間 -
Do
— 注冊一個處理各種Observable生命周期事件的動作,RxJava2中的doOnNext,doAfterNext,doOnComplete等方法 -
Materialize
/Dematerialize
— 代表發出的items和作為發射items發送的通知,或者反過來 -
ObserveOn
— 指定觀察者將觀察此Observable的調度程序(線程),即指定觀察者Observer的運行線程 -
Serialize
— 強制Observable進行序列化調用并表現良好 -
Subscribe
— 根據Observable發射的數據和通知進行操作,即指定一個Observer。 -
SubscribeOn
— 指定該Observable的運行線程 -
TimeInterval
— 將發射items的Observable轉換為能夠發出指示這些發射items之間流逝的時間量的Observable(不好翻譯,看原文吧)
convert an Observable that emits items into one that emits indications of the amount of time elapsed between those emissions -
Timeout
— 鏡像源Observable,但是如果一段時間內沒有發出任何條目則發出錯誤通知 -
Timestamp
— 給Observable發出的條目附加一個時間戳 -
Using
— 創建一個與Observable具有相同生命周期的可支配(用后可拋棄)資源
條件與布爾運算符 Conditional and Boolean Operators
評估計算一個或多個Observables或Observables發出的條目的操作符
-
All
— 確定Observable發出的所有條目是否滿足某些條件 -
Amb
— 給定一個或多個源Observables,僅從第一個發射item的Observable發射所有items -
Contains
— 確定Observable是否發出特定的item -
DefaultIfEmpty
— 從源Observable中發射items,如果源Observable不發射任何item則發射一個默認的item。 -
SequenceEqual
— 確定兩個Observables是否發出相同的items序列 -
SkipUntil
— 丟棄Observable發射的items,直到第二個Observable發射item -
SkipWhile
— 丟棄Observable發射的items,直到特定條件變為false -
TakeUntil
— 在第二個Observable發射一個item或者終止后,丟棄Observable發射的items -
TakeWhile
— 某特定條件變為false后,丟棄Observable發射的item
SkipWhile時一直丟棄,直到某個條件變為false,然后就不丟棄了。TakeWhile是一直不丟棄,直到某個條件變為false后,開始丟棄
數學與集合運算符 Mathematical and Aggregate Operators
對某個Observable發射的所有items進行操作的操作符
-
Average
— 計算Observable發射的所有數字的平均值,并發射該平均值 -
Concat
— 按序發射2個或多個Observables發射的items,各個Observables的items不交錯。 -
Count
— 計算源Observable發射的items的數量,并僅發射該值。 -
Max
— 確定并發射Observable發射的最大值item。 -
Min
— 確定并發射Observable發射的最小值item。 -
Reduce
— 對Observable發射的每個item按照順序應用某個函數計算和發出最終值。 -
Sum
— 計算Observable發射的數字的總和,并發射該值。
背壓 Backpressure Operators
- backpressure operators — 應對Observables產生items比Observers消費他們快的策略。
可連接的Observable操作符 Connectable Observable Operators
擁有更精確控制的訂閱狀態的特定Observables
-
Connect
— 指示可連接的Observable開始向訂閱者發送項目 -
Publish
— 將普通的Observable轉換為可連接的Observable -
RefCount
— 使可連接的Observable像普通的Observable一樣運行 -
Replay
— 確保所有observers都能看到相同的發射的items,即使他們在Observable開始發射items之后訂閱它
轉化Observables的操作符 Operators to Convert Observables
-
To
— 轉化一個Observable為另一個object或數據結構。