【发布时间】:2018-01-12 03:23:25
【问题描述】:
所以我使用 rxjs observables 每 30 秒调用一次 http 请求,使用间隔并重复。但是,当没有互联网连接并且 observable 调用 onError 但 observable 永远不会重复时。我也在使用 retryWhen 并且它不起作用
有什么建议吗?
这是我的代码
Observable.interval(2500).repeat()
.flatMap(() => this.http.get(url))
.map(res => res.text())
.catch(() => {
return Observable.of('ERROR');
})
.retryWhen(error => error)
.subscribe(data => {
// tools.destroyLoadingMessage();
alert('CONNECT OBSEVABLE ' + data);
// console.log(JSON.stringify(data));
}, err => {
alert('DISCONNECT OBSEVABLE ' + err);
// tools.showLoadingMessage('No inrernet');
})
【问题讨论】:
-
flatMap 到 Observable.ajax(或 fromPromise、fromCallback 等)在那里执行 ajax 并将 catch 放在那个上。一旦发生错误,什么都不能来自可观察对象
-
你有例子吗
标签: javascript rxjs