这个问题是关于RxJS5。
上下文:我尝试使用TestScheduler,一切正常,直到我插入承诺。
例如,让我们采取一些功能"从下面的例子。如何在1分钟内验证预期的输出(实际上不必在测试中等待1分钟)。
const asyncFunction = new Promise( (resolve) =>
setTimeout((() => resolve(1)), 0)
);
const someFunction = () =>
Rx.Observable.fromInterval(15000)
.flatMap( each => Rx.Observable.from(asyncFunction()))
.map(each => each + 1)
答案 0 :(得分:0)
我认为这个答案基本上总结了你需要知道的一切:How do I test a function that returns an observable using timed intervals in rxjs 5?
简单地说,即使默认值为15000
,您也应该允许用户设置自定义延迟:
const someFunction = (delay = 15000) =>
Rx.Observable.fromInterval(delay)
...
然后对于TestSheduler
,您需要使用延迟<= 750
,因为750被硬编码为最大虚拟时间。请参阅上面链接的答案以获取更多详细信息。