點擊在我的博客 xuxusheng.com 中查看,有更好的排版哦~
官網介紹如下:
http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-repeatWhen
放珠寶圖:
簡而言之,就是 repeatWhen
操作符接收一個函數,這個函數返回一個新的 Observable
,暫且稱之爲 notifications
。
那麼當 Source Observable
進入 complete
或者 error
狀態時,先要去看一看 notifications
的狀態,如果 notifications
是 complete
或者 error
狀態,那麼就觸發 Source Observable
相應的狀態,否則就返回一個基於 Source Observable
的 Mirror Observable
,以此往復。
注意:
這裏需要注意的是,如果 notifications
進入 complete
狀態,而 Source Observable
還未進入 complete 狀態,那麼會一直等待 Source Observable
進入 complete
狀態後將整個流結束掉。
早期版本這裏有個 bug,
notifications
進入complete
之後,會直接將Source Observable
也置爲complete
。
參見:https://github.com/ReactiveX/rxjs/pull/2209
例子: