我已经延长了Http
类来设置默认标头并处理 angular2 应用程序内所有请求的错误,我想使用retryWhen()
对某些错误重试请求。
哪些错误应该retryWhen
重试请求以及出现哪些错误时应停止?
@Injectable()
export class WpHttp extends Http {
constructor(backend: ConnectionBackend,
defaultOptions: RequestOptions,
private wpService: WpService) {
super(backend, defaultOptions);
}
get(endpoint: string, args?: QueryArgs): Observable<Response> {
return super.get(this.getUrl(endpoint, args), this.getOptions())
/** retry the request after 1 second */
.retryWhen(error => error.delay(1000))
/** timeout 3s
.timeout(3000 , new Error('delay exceeded'))
.catch((err) => {
if (err.status === 400 || err.status === 422) {
return Observable.throw(err);
}
else {
/** Stream errors in WpService */
this.wpService.errors.next(err);
}
})
.finally(() => {
});
}
}
它应该用于post
, put
, update
, delete
要求?
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)