創(chuàng)建一個Observable
1.產(chǎn)生特定的一個元素:just
- 經(jīng)過一段延時:timer
2.從一個序列拉取元素:from
3.重復(fù)的產(chǎn)生某一個元素:repeatElement
4.存在自定義邏輯:create
5.每次訂閱時產(chǎn)生:deferred
6.每隔一段時間,發(fā)出一個元素:interval
- 在一段延時后:timer
7.一個空序列,只有一個完成事件:empty
8.一個任何事件都沒有產(chǎn)生的序列:never
創(chuàng)建一個 Observable 通過組合其他的 Observables
1.任意一個 Observable 產(chǎn)生了元素讥脐,就發(fā)出這個元素:merge
2.讓這些 Observables 一個接一個的發(fā)出元素,當(dāng)上一個 Observable 元素發(fā)送完畢后合呐,下一個 Observable 才能開始發(fā)出元素:concat
3.組合多個 Observables 的元素
- 當(dāng)每一個 Observable 都發(fā)出一個新的元素:zip
- 當(dāng)任意一個 Observable 發(fā)出一個新的元素:combineLatest
轉(zhuǎn)換 Observable 的元素后奇昙,再將它們發(fā)出來
1.對每個元素直接轉(zhuǎn)換:map
2.轉(zhuǎn)換到另一個 Observable:flatMap
- 只接收最新的元素轉(zhuǎn)換的 Observable 所產(chǎn)生的元素:flatMapLatest
- 每一個元素轉(zhuǎn)換的 Observable 按順序產(chǎn)生元素:concatMap
3.基于所有遍歷過的元素: scan
將產(chǎn)生的每一個元素,拖延一段時間后再發(fā)出:delay
將產(chǎn)生的事件封裝成元素發(fā)送出來
將他們封裝成 Event<Element>:materialize
- 然后解封出來:dematerialize
忽略掉所有的 next 事件挟裂,只接收 completed 和 error 事件:ignoreElements
創(chuàng)建一個新的 Observable 在原有的序列前面加入一些元素:startWith
從 Observable 中收集元素蒋譬,緩存這些元素之后在發(fā)出:buffer
將 Observable 拆分成多個 Observables:window
基于元素的共同特征:groupBy
只接收 Observable 中特定的元素
發(fā)出唯一的元素:single
重新從 Observable 中發(fā)出某些元素
1.通過判定條件過濾出一些元素:filter
2.僅僅發(fā)出頭幾個元素:take
3.僅僅發(fā)出尾部的幾個元素:takeLast
4.僅僅發(fā)出第 n 個元素:elementAt
5.跳過頭幾個元素
- 跳過頭 n 個元素:skip
- 跳過頭幾個滿足判定的元素:skipWhile割岛,skipWhileWithIndex
- 跳過某段時間內(nèi)產(chǎn)生的頭幾個元素:skip
- 跳過頭幾個元素直到另一個 Observable 發(fā)出一個元素:skipUntil
6.只取頭幾個元素
- 只取頭幾個滿足判定的元素:takeWhile,takeWhileWithIndex
- 只取某段時間內(nèi)產(chǎn)生的頭幾個元素:take
- 只取頭幾個元素直到另一個 Observable 發(fā)出一個元素:takeUntil
7.周期性的對 Observable 抽樣:sample
8.發(fā)出那些元素犯助,這些元素產(chǎn)生后的特定的時間內(nèi)癣漆,沒有新的元素產(chǎn)生:debounce
9.直到元素的值發(fā)生變化,才發(fā)出新的元素:distinctUntilChanged
- 并提供元素是否相等的判定函數(shù):distinctUntilChanged
10.在開始發(fā)出元素時也切,延時后進(jìn)行訂閱:delaySubscription
從一些 Observables 中扑媚,只取第一個產(chǎn)生元素的 Observable:amb
評估 Observable 的全部元素
1.并且對每個元素應(yīng)用聚合方法,待所有元素都應(yīng)用聚合方法后雷恃,發(fā)出結(jié)果:reduce
2.并且對每個元素應(yīng)用聚合方法疆股,每次應(yīng)用聚合方法后,發(fā)出結(jié)果:scan
把 Observable 轉(zhuǎn)換為其他的數(shù)據(jù)結(jié)構(gòu):as...
在某個 Scheduler 應(yīng)用操作符:subscribeOn
在某個 Scheduler 監(jiān)聽:observeOn
要 Observable 發(fā)生某個事件時, 采取某個行動:do
要 Observable 發(fā)出一個 error 事件:error
如果規(guī)定時間內(nèi)沒有產(chǎn)生元素:timeout
要 Observable 發(fā)生錯誤時倒槐,優(yōu)雅的恢復(fù)
1.如果規(guī)定時間內(nèi)沒有產(chǎn)生元素旬痹,就切換到備選 Observable :timeout
2.如果產(chǎn)生錯誤,將錯誤替換成某個元素 :catchErrorJustReturn
3.如果產(chǎn)生錯誤讨越,就切換到備選 Observable :catchError
4.如果產(chǎn)生錯誤两残,就重試 :retry
創(chuàng)建一個 Disposable 資源,使它與 Observable 具有相同的壽命:using
創(chuàng)建一個 Observable把跨,直到我通知它可以產(chǎn)生元素后人弓,才能產(chǎn)生元素:publish
1.并且,就算是在產(chǎn)生元素后訂閱着逐,也要發(fā)出全部元素:replay
2.并且崔赌,一旦所有觀察者取消觀察意蛀,他就被釋放掉:refCount
3.通知它可以產(chǎn)生元素了:connect