错误代码的HTTP请求: -如何处理多个错误代码的场景在以下
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
是然后delay value 0
和take value 1
如果error.status
是502,503和504然后delay value 2000
和take value 8
如果我的回答回答你的问题,你会接受吗? –
是肯定它是否会有所帮助。 –
我已经更新我的答案 –