Rxjs 操作符之 repeatWhen

點擊在我的博客 xuxusheng.com 中查看,有更好的排版哦~

官網介紹如下:
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-repeatWhen

放珠寶圖:
這裏寫圖片描述

簡而言之,就是 repeatWhen 操作符接收一個函數,這個函數返回一個新的 Observable ,暫且稱之爲 notifications

那麼當 Source Observable 進入 complete 或者 error 狀態時,先要去看一看 notifications 的狀態,如果 notificationscomplete 或者 error 狀態,那麼就觸發 Source Observable 相應的狀態,否則就返回一個基於 Source ObservableMirror Observable,以此往復。

注意:

這裏需要注意的是,如果 notifications 進入 complete 狀態,而 Source Observable 還未進入 complete 狀態,那麼會一直等待 Source Observable 進入 complete 狀態後將整個流結束掉。

早期版本這裏有個 bug,notifications 進入 complete 之後,會直接將 Source Observable 也置爲 complete
參見:https://github.com/ReactiveX/rxjs/pull/2209

例子:

https://codepen.io/xusheng/pen/KvoJop?editors=1012

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章