私はAngular 2を初めて使うので、これは簡単かもしれません.2秒ごとに発生するRx.Observableインターバルコールをキャンセルする方法を理解しようとしています。私はこれで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
}
});
}
これは私のRx.Observable間隔コールが(これは異なるファイルから上記の関数によって呼び出された)私のservice.tsファイルで処理される方法です。
getLatestTrainingStatus(url: string) {
return Rx.Observable
.interval(2000)
.flatMap(() => this._http.get(url))
.map(<Response>(response) => {
return response.text()
});
}
サブスクリプションメソッドでわかるように、私は単に 'trainingStatus'が 'COMPLETED'のときにインターバルコールを(2秒ごとに)停止する必要があります。