Rxjava2 變換型操作符
阿新 • • 發佈:2018-12-06
1.作用
- 對事件序列中的事件 / 整個事件序列 進行加工處理(即變換),使得其轉變成不同的事件 / 整個事件序列
Map()
對被觀察者傳送的每1個事件都通過 指定的函式 處理,從而變換成另外一種事件
- 應用場景 資料型別轉換
FlatMap() / ConcatMap()
將被觀察者傳送的事件序列進行 拆分 & 單獨轉換,再合併成一個新的事件序列,最後再進行傳送
原理
- 為事件序列中每個事件都建立一個
Observable
物件; - 將對每個 原始事件 轉換後的 新事件 都放入到對應
Observable
- 將新建的每個
Observable
都合併到一個 新建的、總的Observable
物件; - 新建的、總的
Observable
物件 將 新合併的事件序列 傳送給觀察者(Observer
)
- 應用場景 將被觀察者傳送的整個事件序列進行變換
- 親測發現 flatmap 和 concatmap 沒有區別,之前看書上說前者無序後者有序,這個點比較矛盾???????
Buffer()
- 定期從 被觀察者(
Obervable
)需要傳送的事件中 獲取一定數量的事件 & 放到快取區中,最終傳送