[英]Angular 2 : Get 404 error in http.get call with Observable return
我有一個小問題,我有這個代碼,當它必須返回狀態 200 時可以工作(一切正常)
httpCallGet(pathToCall: string, varToSend: string ): Observable<any> {
return this.http.get(this.url + pathToCall + varToSend, {headers : this.headers} )
.map( res => res.json())
.catch(this.handleError);
}
但是當 URL 錯誤並且出現 404 錯誤時,我的網站就會因控制台錯誤而崩潰。
我怎樣才能在控制台上正確地捕獲這種類型的錯誤而沒有錯誤,並且我可以在錯誤時重試?
我嘗試 .retry(3) 但此代碼不起作用並且 .subscribe 不適用於 Observable 返回(我不太容易使用 Observable ^^)
作為一個想法來解決這個問題?
讓您的服務返回一個 observable,該 observable 要么返回結果,要么拋出錯誤。
httpCallGet(pathToCall: string, varToSend: string ): Observable<any> {
return this.http.get(this.url + pathToCall + varToSend, {headers : this.headers} )
.map( res => res.json())
.catch(error => Observable.throw('error');
};
然后在您的組件中,處理錯誤。
getHttpData = () => {
this.service.httpCallGet('someurl', '')
.subscribe(
result => this.handleResult(result),
error => this.handleError(error)
)
};
handleResult = (data) => {
// do stuff with data
};
handleError = (error) => {
// do stuff with error
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.