繁体   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