У меня есть поток событий видеопроигрывателя, который запускается при нажатии определенных событий (таких как пауза или воспроизведение). Поток поступает из двух наблюдаемых с помощью combLatest, чтобы захватить текущую позицию видео при каждом генерировании события.
Мне нужно каждые 10 секунд генерировать другое событие и добавлять его в микс. Все работает нормально, но ping $ observable начинает генерировать события до того, как будет выпущено первое значение $ value событий, которое будет событием, которое отмечает, что проигрыватель был загружен, и все другие события могут быть записаны.
Как я могу объединить ping $ и 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));
Спасибо