【发布时间】:2017-07-03 16:02:39
【问题描述】:
我正在合并两个 Observable。 第一个在初始化时获取当前温度。 第二个以特定间隔轮询 API。 如果 Api 调用失败,则 Observable 间隔不会恢复。
我怎样才能恢复它?
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?
});
}
有什么想法吗?类型
【问题讨论】:
-
也许这会有所帮助:stackoverflow.com/a/34999441/2829204
-
您希望间隔从最后一个没有失败的
index继续吗?
标签: rxjs observable