【发布时间】:2016-11-15 00:06:45
【问题描述】:
我是 Angular 2 的新手,所以这可能是微不足道的 - 我试图弄清楚如何取消每 2 秒发生一次的 Rx.Observable 间隔调用。我用这个订阅了 Rx.Observable:
getTrainingStatusUpdates() {
this.trainingService.getLatestTrainingStatus('train/status')
.subscribe(res => {
this.trainingStatus = res;
if (this.trainingStatus == "COMPLETED") {
//Training is complete
//Stop getting updates
}
});
}
这就是我在 service.ts 文件中处理 Rx.Observable 间隔调用的方式(这是由上面的函数从不同的文件调用的):
getLatestTrainingStatus(url: string) {
return Rx.Observable
.interval(2000)
.flatMap(() => this._http.get(url))
.map(<Response>(response) => {
return response.text()
});
}
正如您在订阅方法中看到的,我只想在“trainingStatus”为“COMPLETED”时停止间隔调用(每 2 秒)。
【问题讨论】:
标签: javascript angularjs typescript angular