簡體   English   中英

合並 RXJS observables,但等待第一個開始發射值

[英]Combine RXJS observables, but wait for first one to begin emitting values

我有一個 stream 視頻播放器事件,這些事件在按下某些事件(如暫停或播放)時觸發。stream 來自兩個使用 combineLatest 的可觀察對象,以在事件發出時獲取當前視頻 Z4757FE07FD492A8BE0EA6A760D。

我需要每 10 秒發出另一個事件並將其放入混合中。 一切正常,但是 ping$ 可觀察對象在第一個 events$ 值發出之前開始發出事件,這將是標記播放器已加載的事件,並且可能會記錄所有其他事件。

如何將 ping$ 和 events$ 合並為一個 stream,但只有在 events$ 開始發出值后才讓 ping$ 開始?

const events$ = mediaStreams.events$;
const currTime$ = mediaStreams.currentTime$;

const intervalSource$ = interval(2000);
const ping$ = intervalSource$.pipe(map(() => "ping"));

const concatEvents$ = merge(events$, ping$);


const combined = concatEvents$.pipe(
 withLatestFrom(currTime$),
   map(([first, second]) => {
    return {
       event: first,
       position: second
     }
  })
)


combined.subscribe(val => console.log('COMBINED', val));

謝謝

ping$.pipe(
    skipUntil(events$)
);

ping$將被跳過,直到events$發出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM