簡體   English   中英

Angular 2:在 http.get 調用中獲取 404 錯誤並返回 Observable

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM