我有一些预定义的事件设置在特定时间发生。我有一个计时器,像这样:
const timer = Rx.Observable.interval(100).timeInterval()
.map(x => x.interval)
.scan((ms, total) => total + ms, 0)
计时器发出接近 100,200,300,400,500 的东西(尽管实际上它更像是 101,200,302,401,500 ......这完全没问题)我也有一些我想在某些时候做的事情。例如,假设我想在以下时间做一些事情:
const stuff = Rx.Observable.from([1000, 2000, 2250, 3000, 5000]);
我想要的是组合“stuff”和“timer”,使得结果流在当时(或稍晚一点)在“stuff”中定义的每次发出一个值。在这种情况下,t=1000 ms、2000 ms、2250 ms、3000 ms 和 5000 ms。注意:由于间隔大小,2250 家伙应该在 2300 左右发出。没关系。他们只是不能早到或不止一次。
我有一个解决方案,但不是很好。它重新启动“东西”每一步(在这种情况下每 100 毫秒)并过滤它并取 1。我希望一旦从“东西”发出一个事件,它就消失了,所以后续过滤器它没有这些值。
在真正的应用程序中,会有 stuff 和 stuff2 可能还有 stuff3...(但我会称它们为别的东西!)
提前致谢!我希望这很清楚。