我正在合併兩個可觀察對象。 第一個獲得init的當前溫度。 第二個API以一定的時間間隔輪詢API。 如果Api調用失敗,則不會恢復Observable時間間隔。如何在錯誤時恢復RxJs可觀察間隔
我該如何恢復?
getCurrentTemp(): Observable<number> {
return this.http.get(this.environmentService.getTemperatureUrl())
.map((res: Response) => res.json())
.switchMap(() => res.temp);
}
pollCurrentTemperature(): Subscription {
const temp$ = this.getCurrentTemp();
const tempInterval$ = Observable
.interval(3000)
.flatMap(() => this.getCurrentTemp());
return temp$
.take(1)
.merge(tempInterval$)
.subscribe((temp: number) => {
console.log('temp', temp);
}, (err) => {
console.log('error', err);
// When the api fails my interval does not resume. How can I retry it?
});
}
任何想法?泰
也許這可能有所幫助:https://stackoverflow.com/a/34999441/2829204 – CozyAzure
你想要間隔從最後一個沒有失敗的'索引'繼續? – martin