问题
出于测试目的,我正在创建 Observable
对象,这些对象将实际 http 调用返回的 observable 替换为 Http
。
我的 observable 是使用以下代码创建的:
fakeObservable = Observable.create(obs => {
obs.next([1, 2, 3]);
obs.complete();
});
问题是,这个 observable 立即发出。有没有办法为其发射添加自定义延迟?
追踪
我试过这个:
fakeObservable = Observable.create(obs => {
setTimeout(() => {
obs.next([1, 2, 3]);
obs.complete();
}, 100);
});
但这似乎不起作用。
原文由 Adrien Brunelat 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用以下导入:
尝试这个:
更新:RXJS 6
上述解决方案在较新版本的 RXJS(例如 angular)中不再适用。
所以场景是我有一系列项目要使用 API 检查。 API 只接受一个项目,我不想通过一次发送所有请求来终止 API。所以我需要在 Observable 流上定时发布项目,中间有一点延迟。
使用以下导入:
然后使用以下代码:
它基本上为数组中的每个项目创建一个新的“延迟”Observable。可能有很多其他方法可以做到这一点,但这对我来说很好,并且符合“新”RXJS 格式。