加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angular – 如何捕获RxJS 5.5中的错误

发布时间:2020-12-17 17:05:16 所属栏目:安全 来源:网络整理
导读:我正在使用Angular 5和RXJS 5.5 在我做这样的事情之前 getProjectInfo(id): Observableany { const URL = `${this.API}/${id}`; return this.http.get(URL) .pipe(map(res = res)),catchError(this.handleServerError);}handleServerError(error: any) { con
我正在使用Angular 5和RXJS 5.5

在我做这样的事情之前

getProjectInfo(id): Observable<any> {
    const URL = `${this.API}/${id}`;
    return this.http.get(URL)
      .pipe(map(res => res)),catchError(this.handleServerError);
}

handleServerError(error: any) {
    console.log(error.error || error.json() || error);
    return Observable.throw(error.error || error.json() || error || 'Server error');
}

但现在我收到了这个错误

Error:(21,5) TS2322:Type 'UnaryFunction<Observable<{}>,Observable<any>>' is not assignable to type 'Observable<any>'.
  Property '_isScalar' is missing in type 'UnaryFunction<Observable<{}>,Observable<any>>'.

我也试过这个

getProjectInfo(id): Observable<any> {
    const URL = `${this.API}/${id}`;
    return this.http.get(URL)
      .pipe(map(res => res)),catchError(err => this.handleError('getProjInfo',URL));
}
private handleError(method: String,URL: string): any {
  return (err: any) => {
    const errMsg = `error in ${method}() retrieving ${URL}`;
    console.log(`${errMsg}:`,err);
    if (err instanceof HttpErrorResponse) {
      console.log(`status: ${err.status},${err.statusText}`);
    }
    return Observable.throw(errMsg);
  };
}

我究竟做错了什么?

解决方法

请记住您的括号.您返回管道结果和catchEror结果除以,:

return this.http.get(URL)
  .pipe(map(res => res)),catchError(this.handleServerError);

将一个支架放在自己的位置:

return this.http.get(URL)
  .pipe(
    map(res => res),catchError(this.handleServerError)
  );

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读