我有一个rxjs流,该流在运行程序时有效,但在测试环境中不起作用。
基本上是使用Observable的时间间隔每5秒触发一次事件,但是我想保证自己的状态是BUFFERING,所以我从stateStream $中提取了最新的数据,stateStream $是我100%确信已经触发的另一个Observable,即使在我的测试环境。
这是流的代码:
Observable.interval(5)
.withLatestFrom(stateStream$)
.takeWhile(combined => combined[1].status === PLAYER_STATUS.BUFFERING)
.map(([interval]) => (interval + 1) * heartbeat)
.subscribe({
next: (intervalDuration) => {
// do thing
},
error: e => console.error('buf', 'buffering heartbeat', e),
complete: () => console.log('buf', 'buffering heartbeat', 'complete'),
})
因此,如果我拿走withLatestFrom
行,则间隔会按预期触发。我已经在测试中的其他地方订阅了stateStream $,以验证它是否正在触发,即使是从我的测试函数中也是如此。只是不在设置此特定间隔的范围内