【发布时间】:2017-12-30 06:53:06
【问题描述】:
以下错误代码:-
400 - 执行 single 响应到达时重试 without delay
502、503 和 504 执行 eight 重试次数 1000 Sec delay
我的代码如下:-
private _getData('loginKey', body, headers) {
return this._http.post('url', body, { headers: headers })
.map((response: Response) => response.json())
.retryWhen(errors => {
return errors
.mergeMap((error) => this.handleError(error))
.delay(2000)
.take(8);
});
}
public handleError(error: Response | any): Observable<any> {
if (error.status === 400) { // retry 1 time and with no delay
return Observable.of(error);
} else { // retry confgured times and configured delay
return Observable.of(error);
}
}
我的问题是如何根据上面的错误代码更改delay和take的值:
如果error.status 是400 那么delay value 0 和take value 1
如果error.status 是502、503 和504,那么delay value 2000 和take value 8
【问题讨论】:
-
如果我的回答回答了你的问题,你会接受吗?
-
是的,如果有帮助的话。
-
我已经更新了答案
标签: angular http error-handling observable