我正在制作一个简单的玩具angular2项目,每隔5秒就会击中一个网址。现在我拥有它以便轮询网址,当文档加载时它不会等待。但它看起来真的很笨重。对此有更好的解决方案吗?
Observable.interval(1000 * 5)
.flatMap(() => this.http.get(url))
.merge(this.http.get(url)) // Merges a stream that starts right away!!!
.map((res:Response) => res.json());
答案 0 :(得分:7)
我想你可以尝试这样的事情:
Observable.interval(1000 * 5)
.startWith(0)
.flatMap(() => this.http.get(url))
.map((res:Response) => res.json());
这将立即发出一个值,然后每5秒发出一次。
查看文档here.
答案 1 :(得分:6)
您可以使用timer
代替
Observable.timer(0, 1000 * 5)
.flatMap(() => this.http.get(url),
(_, res) => res.json);
timer
在发出第一个事件之前会有一个初始延迟,然后每隔5秒发出一次interval
。