e在Angular中处理catch HTTP响应?

时间:2018-10-26 12:43:39

标签: angular

我使用最新版本的Angular和新包HttpClient执行请求:

   return this.http.post('', data).pipe(
      catchError(this.handleErrorObservable())
    );

handleErrorObservable是我自己的异常处理函数:

private handleErrorObservable(error: Response | any) {
    return Observable.throw(error.message || error);
  }

如何返回对此方法的响应并处理异常?

2 个答案:

答案 0 :(得分:1)

你非常亲近。

return this.http.post('', data).pipe(
  catchError(err => this.handleErrorObservable(err))
);

注意err参数,这是您要查找的错误响应。然后我继续传递下去。

答案 1 :(得分:1)

首先修复您的catchError,因为它适用于function并返回Observable

return this.http.post('', data).pipe(
  catchError(error => this.handleErrorObservable(error))
);

在新版本的rxjs中,throw中没有Observable运算符,而应该使用throwError

import {throwError} from 'rxjs';

private handleErrorObservable(error: Response | any) {
    return throwError(error.message || error);
  }