0
我對數小時進行了研究,但找不到解決方案。基本上,我試圖在使用typescript的離子項目中處理401錯誤。如果發生,我需要刷新我的accessToken,然後調用相同的函數。我製作了一個代碼,可以實現這個功能,但召回是在組件內部完成的,而且這是一個糟糕的設計。我怎樣才能回想起應該返回Observable的函數?使用刷新令牌處理401錯誤並調用相同的函數
我的組件:
getInfos(){
this.userService.getInfosUser()
.subscribe(
response => {
console.log('success : ' , response); // Then do some logic
},
error => {
this.showErrorPage(error);
}
)
我的供應商:
getInfosUser(): Observable<Response> {
return this.authHttp.get(this.apiUrl+'getuserinfos')
.map((response: Response) => {
return response;
})
.catch((error: any) => {
if (error.status === 401 || error.status === "401") {
// Get and set the new accessToken
this.authService.handleError(error)
.then((result) => {
// Should recall getInfosUser() the function here, how ?
});
return Observable.throw(new Error(error.status));
}
else {
return Observable.throw(new Error(error.status));
}
})