方法名 | 用法 |
---|---|
map() | 對序列的每一項都用一個函數來變換Observable發射的數據序列 |
flatMap() concatMap() 函數 flatMapIterable()源碼分析 |
將Observable發射的數據集合變換爲Observable集合,而後將這些Observable發射的數據平坦話地放進一個單獨的Observable中 |
switchMap() | 將Observable發射的數據集合轉換爲Observables集合,而後只發射這些Observables最近發射過的數據 |
scan() | 對Observable發射的每一項數據應用一個函數,而後按順序依次發射每個值 |
groupBy() | 將Observable拆分爲Observable集合,將原始Observable發射的數據按Key分組,每個Observable發射過一組不一樣的數據 |
buffer() | 按期從Observable收集數據到一個集合,而後把這些數據集合打包發射,而不是一個發射一個 |
window() | 按期未來自Observable的數據拆分紅一些Obs窗口,而後發射這些窗口,而不是每次發射一項 |
cast() | 在發射以前強制將Observable發射的全部數據轉換爲指定類型 |
方法名 | 用法 |
---|---|
filter() | 過濾數據 |
takeLast() | 只發射最後的N項數據 |
last() | 只發射最後一項數據 |
lastDefault() | 只發射最後一項數據,若是Observable爲空,就發射默認值 |
takeLastBuffer() | 將最後的N項數據看成單個數據發射 |
skip() | 跳過開始的N項數據 |
skipLast() | 跳過最後的N項數據 |
first() and takeFirst() | 只發射第一項數據,或者知足某種條件的第一項數據 |
firstDefault() | 只發射第一項數據,若是Observable爲空,就發射默認值 |
elementAt() | 發射第N項數據 |
elementAtOrDefault() | 發射第N項數據,若是Observable數據少於N項,則發射默認值 |
sample() or throttleLast() | 按期發射Observable最近的數據 |
throttleFirst() | 按期發射Observable發射的第一項數據 |
throttleWithTimeout() or debounce() | 只有當Observable在指定的時間段後尚未發射數據時,才發射一個數據 |
timeout() | 若是在一個指定的時間段後還沒發射數據,就發射一個異常 |
distinct() | 過濾掉重複的數據 |
distinctUntilChanged() | 過濾掉連續重複的數據 |
ofType() | 只發射指定類型的數據 |
ignoreElements() | 丟棄全部的正常數據,只發射錯誤或完成的通知 |
後續補上部分源碼分析spa