我正在开发我的第一个Angular 2产品。我创建了这个Observable.timer,然后订阅了它。它会轮询服务器以获取数据。
我的问题
如何暂停和取消暂停?
ngOnInit(): void {
this.poll = Observable.timer(500,500).subscribe((t: any) => {
this.request.getRackList(+this.global.zoneId).subscribe(
incoming => this.import(incoming),
err => { this.global.err(err) }
);
})
this.canOpenClose = (this.global.mode === 2);
}
答案 0 :(得分:4)
暂停Observable有多种方法。你可以:
.filter()
排放答案 1 :(得分:0)
您可以在此处查看:RxJS - pause, upon resume give last paused value
基本上,您使用switchMap
运算符来停止计时器发射/重新启动它们,并且暂停器会发出一个布尔值,指示您是要暂停还是重新启动。
如果您不需要最新值,则可以publishReplay
替换publish