小编Wal*_*cht的帖子

错误处理程序和 RxJS 6.2.2

我有一个带有 globalError 处理程序的应用程序,如下所示:

import { Injectable, ErrorHandler, Injector } from "@angular/core";
import { Router } from "@angular/router";

@Injectable()
export class GlobalErrorHandler implements ErrorHandler {

  constructor(
    private injector: Injector) { }


  public handleError(error: any) {
    console.error("Something went wrong");
    //.. Handle error here
  }
}
Run Code Online (Sandbox Code Playgroud)

这总是适用于每个星座。如果抛出错误,全局处理程序会捕获并处理它。

现在升级到 RxJs 6.2.2 后,我明白捕捉 http 错误发生了变化。

代码错误仍然有效,但 HttpClient 抛出的错误不会被全局捕获。GlobalErrorHandler 不再被触发。

我知道我可以处理我的服务中的错误,并且工作正常:

doSomething() {
    return this.http
      .get("http://someURL").pipe(
      map((res: any) => { console.log(res) }),
        catchError(this.handleError<any>(`blabla`))
      );
  }

  /**
 * Handle Http operation that failed.
 * Let the app …
Run Code Online (Sandbox Code Playgroud)

rxjs angular angular6 angular-errorhandler rxjs6

5
推荐指数
1
解决办法
3713
查看次数

标签 统计

angular ×1

angular-errorhandler ×1

angular6 ×1

rxjs ×1

rxjs6 ×1