RxJS switchAll

2020-10-14 10:35 更新

僅從最新的可觀察序列將高階可觀察值轉(zhuǎn)換為一階可觀察值

switchAll<T>(): OperatorFunction<ObservableInput<T>, T>

參量

沒有參數(shù)。

returns

  1. OperatorFunction<ObservableInput<T>, T>

描述

展平可觀察的事物。

開關(guān)全大理石圖

switchAll訂閱可觀察的可觀測(cè)對(duì)象的源,也稱為“高階可觀察對(duì)象”(或Observable<Observable<T>>)。它訂閱源發(fā)出的最新提供的“內(nèi)部可觀察的”,取消訂閱任何以前訂閱的內(nèi)部可觀察的,因此在任何時(shí)間點(diǎn)只能訂閱最新的內(nèi)部可觀察的。switchAll僅當(dāng)源可觀察對(duì)象完成并且當(dāng)前訂閱內(nèi)部可觀察對(duì)象的任何對(duì)象(如果有)也已完成時(shí),返回的結(jié)果可觀察對(duì)象將完成。

例子

為每個(gè)點(diǎn)擊事件產(chǎn)生一個(gè)可觀察到的新間隔,但是對(duì)于每個(gè)新點(diǎn)擊,取消前一個(gè)間隔并訂閱新間隔。

  1. import { fromEvent, interval } from 'rxjs';
  2. import { switchAll, map, tap } from 'rxjs/operators';
  3. const clicks = fromEvent(document, 'click').pipe(tap(() => console.log('click')));
  4. const source = clicks.pipe(map((ev) => interval(1000)));
  5. source.pipe(
  6. switchAll()
  7. ).subscribe(x => console.log(x));
  8. // Output
  9. // click
  10. // 1
  11. // 2
  12. // 3
  13. // 4
  14. // ...
  15. // click
  16. // 1
  17. // 2
  18. // 3
  19. // ...
  20. // click
  21. // ...

也可以看看

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)