[英]Combining different kinds of Observables in RxJS but only emitting values coming from one of them
[英]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.