【发布时间】:2018-01-23 15:13:29
【问题描述】:
在 Angular 2 中,我使用 rxjs 进行 HTTP 调用。目前设置为如下显示错误。
this.http.get("http://www.someapifunction.com/api" , {headers: headers, params: data})
.map(res => res.json())
.subscribe(
data => {
console.log(data);
},
err => {
console.log('error',err);
this.showError(err);
},
() => console.log('Request Complete')
);
如果出现错误,代码将运行一个显示错误消息的函数。
我现在要做的是实现 rxjs retryWhen + take 在打印错误消息之前运行代码 2 次。如下:
this.http.get("http://www.someapifunction.com/api" , {headers: headers, params: data})
.readyWhen(errors => errors.delay(5000).take(2))
.map(res => res.json())
.subscribe(
data => {
console.log(data);
},
err => {
console.log('error',err);
this.showError(err);
},
() => console.log('Request Complete')
);
我遇到的问题是,一旦 API 重试两次不成功,它就没有运行 err 函数。我需要做什么才能运行 err 函数,即 this.showErr(err)??
【问题讨论】: