【发布时间】:2019-10-24 02:48:39
【问题描述】:
我有一个视频播放器事件流,在按下某些事件(如暂停或播放)时触发。该流来自两个使用 combineLatest 的可观察对象,以在发出事件时获取当前视频位置。
我需要每 10 秒发出另一个事件并将其放入混合中。一切正常,但 ping$ observable 在第一个 events$ 值发出之前开始发出事件,这将是标记播放器已加载的事件,并且可能会记录所有其他事件。
如何将 ping$ 和 events$ 合并到一个流中,但只有在 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));
谢谢
【问题讨论】:
标签: javascript rxjs reactive-programming