以下代码在5000ms后发出一个int,然后在每5000ms后发出另一个:
let evens = Observable.interval(5000) .map(i => { return i * 2; }); evens.subscribe((i) => { console.log(i); });
是否可以这样做,但是立即得到第一个结果(0ms),然后在后续结果之间等待5000ms?
解决方法
您可以使用
Observable.timer()
,其中第一个参数是初始延迟:
Observable.timer(0,5000);
或者,如果您希望立即发出第一个项目,也可以使用startWith()
运算符.