관찰 가능 객체를 반환하는 Angular 2 HTTP 라이브러리를 사용하고 있습니다. 특정 오류 상태/코드에서 다시 시도를 구현하려고합니다.각도 2 RxJS Observable : RetryWhen 필터가 오류시 다시 시도합니다. 상태
오류가 429가 아닌 경우 문제가 발생하면 Observable.of(error)
이 재 시도를 위해 오류가 발생하지만 두 번의 재 시도가 모두 실패하면 흐름 실행이 catch 블록 대신 성공 블록으로 이동합니다.
모든 재 시도에서 블록을 잡으려고 흐름을 실행하는 방법은 실패합니까?
return this.http.get(url,options)
.retryWhen((errors) => {
return errors
.mergeMap((error) => (error.status === 429) ? Observable.throw(error) : Observable.of(error))
.take(2);
})
.toPromise()
.then((res:Response) => console.log('In Success Block'))
.catch((res) => this.handleError(res));
은 내가 최근에 비슷한 동작을 구현, 내 문제 파티에 늦게
return this.http
.post(url, JSON.stringify(body), requestOptions).retryWhen((errors) => {
return errors
.mergeMap((error) => (error.status === 404) ? Observable.throw(error) : Observable.of(error))
.take(2);
}).map((res:Response) =>{
if (res.status === 200)
return res;
else
return Observable.throw(res);
})
.toPromise();
http://stackoverflow.com/questions/39480348/angular-2- rxjs-observable-retry-except-on-429-status/39928110 # 39928110 –