一 建立操做html
用於建立Observable的操做符react
Create — 經過調用觀察者的方法從頭建立一個Observable數組
Defer — 在觀察者訂閱以前不建立這個Observable,爲每個觀察者建立一個新的Observable緩存
Empty/Never/Throw — 建立行爲受限的特殊Observable數據結構
From — 將其它的對象或數據結構轉換爲Observable併發
Interval — 建立一個定時發射整數序列的Observable函數
Just — 將對象或者對象集合轉換爲一個會發射這些對象的Observable測試
Range — 建立發射指定範圍的整數序列的Observablespa
Repeat — 建立重複發射特定的數據或數據序列的Observable線程
Start — 建立發射一個函數的返回值的Observable
Timer — 建立在一個指定的延遲以後發射單個數據的Observable
二 變換操做
這些操做符可用於對Observable發射的數據進行變換,詳細解釋能夠看每一個操做符的文檔
Buffer — 緩存,能夠簡單的理解爲緩存,它按期從Observable收集數據到一個集合,而後把這些數據集合打包發射,而不是一次發射一個
FlatMap — 扁平映射,將Observable發射的數據變換爲Observables集合,而後將這些Observable發射的數據平坦化的放進一個單獨的Observable,能夠認爲是一個將嵌套的數據結構展開的過程。
GroupBy — 分組,將原來的Observable分拆爲Observable集合,將原始Observable發射的數據按Key分組,每個Observable發射一組不一樣的數據
Map — 映射,經過對序列的每一項都應用一個函數變換Observable發射的數據,實質是對序列中的每一項執行一個函數,函數的參數就是這個數據項
Scan — 掃描,對Observable發射的每一項數據應用一個函數,而後按順序依次發射這些值
Window — 窗口,按期未來自Observable的數據分拆成一些Observable窗口,而後發射這些窗口,而不是每次發射一項。相似於Buffer,但Buffer發射的是數據,Window發射的是Observable,每個Observable發射原始Observable的數據的一個子集
三 過濾操做
這些操做符用於從Observable發射的數據中進行選擇
Debounce — 只有在空閒了一段時間後才發射數據,通俗的說,就是若是一段時間沒有操做,就執行一次操做
Distinct — 去重,過濾掉重複數據項
ElementAt — 取值,取特定位置的數據項
Filter — 過濾,過濾掉沒有經過謂詞測試的數據項,只發射經過測試的
First — 首項,只發射知足條件的第一條數據
IgnoreElements — 忽略全部的數據,只保留終止通知(onError或onCompleted)
Last — 末項,只發射最後一條數據
Sample — 取樣,按期發射最新的數據,等因而數據抽樣,有的實現裏叫ThrottleFirst
Skip — 跳過前面的若干項數據
SkipLast — 跳事後面的若干項數據
Take — 只保留前面的若干項數據
TakeLast — 只保留後面的若干項數據
四 組合操做
組合操做符用於將多個Observable組合成一個單一的Observable
And/Then/When — 經過模式(And條件)和計劃(Then次序)組合兩個或多個Observable發射的數據集
CombineLatest — 當兩個Observables中的任何一個發射了一個數據時,經過一個指定的函數組合每一個Observable發射的最新數據(一共兩個數據),而後發射這個函數的結果
Join — 不管什麼時候,若是一個Observable發射了一個數據項,只要在另外一個Observable發射的數據項定義的時間窗口內,就將兩個Observable發射的數據合併發射
Merge — 將兩個Observable發射的數據組合併成一個
StartWith — 在發射原來的Observable的數據序列以前,先發射一個指定的數據序列或數據項
Switch — 將一個發射Observable序列的Observable轉換爲這樣一個Observable:它逐個發射那些Observable最近發射的數據
Zip — 打包,使用一個指定的函數將多個Observable發射的數據組合在一塊兒,而後將這個函數的結果做爲單項數據發射
五 錯誤處理
這些操做符用於從錯誤通知中恢復
Catch — 捕獲,繼續序列操做,將錯誤替換爲正常的數據,從onError通知中恢復
Retry — 重試,若是Observable發射了一個錯誤通知,從新訂閱它,期待它正常終止
六 輔助操做
一組用於處理Observable的操做符
Delay — 延遲一段時間發射結果數據
Do — 註冊一個動做佔用一些Observable的生命週期事件,至關於Mock某個操做
Materialize/Dematerialize — 將發射的數據和通知都當作數據發射,或者反過來
ObserveOn — 指定觀察者觀察Observable的調度程序(工做線程)
Serialize — 強制Observable按次序發射數據而且功能是有效的
Subscribe — 收到Observable發射的數據和通知後執行的操做
SubscribeOn — 指定Observable應該在哪一個調度程序上執行
TimeInterval — 將一個Observable轉換爲發射兩個數據之間所耗費時間的Observable
Timeout — 添加超時機制,若是過了指定的一段時間沒有發射數據,就發射一個錯誤通知
Timestamp — 給Observable發射的每一個數據項添加一個時間戳
Using — 建立一個只在Observable的生命週期內存在的一次性資源
七 條件和布爾操做
這些操做符可用於單個或多個數據項,也可用於Observable
All — 判斷Observable發射的全部的數據項是否都知足某個條件
Amb — 給定多個Observable,只讓第一個發射數據的Observable發射所有數據
Contains — 判斷Observable是否會發射一個指定的數據項
DefaultIfEmpty — 發射來自原始Observable的數據,若是原始Observable沒有發射數據,就發射一個默認數據
SequenceEqual — 判斷兩個Observable是否按相同的數據序列
SkipUntil — 丟棄原始Observable發射的數據,直到第二個Observable發射了一個數據,而後發射原始Observable的剩餘數據
SkipWhile — 丟棄原始Observable發射的數據,直到一個特定的條件爲假,而後發射原始Observable剩餘的數據
TakeUntil — 發射來自原始Observable的數據,直到第二個Observable發射了一個數據或一個通知
TakeWhile — 發射原始Observable的數據,直到一個特定的條件爲真,而後跳過剩餘的數據
八 算術和聚合操做
這些操做符可用於整個數據序列
Average — 計算Observable發射的數據序列的平均值,而後發射這個結果
Concat — 不交錯的鏈接多個Observable的數據
Count — 計算Observable發射的數據個數,而後發射這個結果
Max — 計算併發射數據序列的最大值
Min — 計算併發射數據序列的最小值
Reduce — 按順序對數據序列的每個應用某個函數,而後返回這個值
Sum — 計算併發射數據序列的和
九 鏈接操做
一些有精確可控的訂閱行爲的特殊Observable
Connect — 指示一個可鏈接的Observable開始發射數據給訂閱者
Publish — 將一個普通的Observable轉換爲可鏈接的
RefCount — 使一個可鏈接的Observable表現得像一個普通的Observable
Replay — 確保全部的觀察者收到一樣的數據序列,即便他們在Observable開始發射數據以後才訂
十 轉換操做
To — 將Observable轉換爲其它的對象或數據結構
Blocking 阻塞Observable的操做符
幾種主要的需求
直接建立一個Observable(建立操做)
組合多個Observable(組合操做)
對Observable發射的數據執行變換操做(變換操做)
從Observable發射的數據中取特定的值(過濾操做)
轉發Observable的部分值(條件/布爾/過濾操做)
對Observable發射的數據序列求值(算術/聚合操做)
(來自於:http://reactivex.io/documentation/operators.html#categorized )