我正試圖在Angular4中實現一個請求/響應攔截機制。我對observables相當陌生。Angular 4中的HTTP請求重試機制?
我維護兩個攔截器數組,一個用於請求,另一個用於響應。攔截器只是接受請求/響應對象並轉換它們的函數。
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異常,我想獲得新的Auth令牌,並用更新後的Auth令牌重試相同的請求。
我在想什麼是引入錯誤攔截器的數組。其中一個錯誤攔截器函數將檢查它是否爲401,並向服務器發出一個新的刷新請求,使後續的錯誤攔截器函數失效。我認爲有必要切換可觀察的流。觀察者最終將得到最新請求的迴應。如何繼續?
試試這個:https://stackoverflow.com/questions/36652495/angular2-http-retry-logic – SrAxi
可能重複的[Angular2 http重試邏輯](https://stackoverflow.com/questions/36652495/angular2- http-retry-logic) – Pace
@Pace我的疑問是關於從一個攔截器函數內切換流。如果我與http.request的級別相同,Switchmap可以工作。 – NewtonCode