Angular4で要求/応答傍受メカニズムを実装しようとしています。私はObservableにかなり新しいです。Http Angular 4のリトライメカニズムをリクエストしますか?
私は、リクエスト用とレスポンス用の2つのインターセプタ配列を維持しています。インターセプタは、リクエスト/レスポンスオブジェクトを受け取り、それらを変換する関数に過ぎません。
sendRequest(req:Response):Observable<Response>{
req= this.processRequest(req);
This.http.request(req)
.map((res:Response)=>{
return this.processResponse(res)
})
.catch(this.handleError)
}
handleError(err:Response):Observable<Response>{
return Observable.throw(err);
}
基本的なエラー処理が正常に機能します。時々401の例外のために、私は新しい認証トークンを取得し、更新された認証トークンで同じ要求を再試行したいと思います。
私が考えているのは、エラーインターセプタの配列を導入することです。エラーインターセプタ関数の1つが401であるかどうかをチェックし、サーバーに新しいリフレッシュ要求を発行し、後続のエラーインターセプタ関数を無効にします。私は、観測可能なストリームを切り替える必要があると仮定します。オブザーバーは最終的には最新のリクエストから応答を得るでしょう。これを進めるには?
this.http.get('some/url').retry(2)......
これを試してください:https://stackoverflow.com/questions/36652495/angular2-http-retry-logic – SrAxi
[Angular2 http retry logic]の重複している可能性があります(https://stackoverflow.com/questions/36652495/angular2- http-retry-logic) – Pace
@Pace疑わしいのは、インターセプタ関数内からストリームを切り替えることです。私がhttp.requestと同じレベルにある場合、Switchmapは動作します。 – NewtonCode