【问题标题】:Handle error in Subscribe block instead of Http Interceptor处理订阅块中的错误而不是 Http 拦截器
【发布时间】:2021-06-20 00:22:02
【问题描述】:

我正在通过下面的角度服务调用 api

this.someservice.save(this.someID, this.payload).subscribe(
  res => { },
  err => { },
  () =>{} );

根据一些业务规则,我从 API 抛出一个自定义异常,但是当我将调试器放入错误块时,它不显示任何信息,而是跳转到拦截器并在那里显示该信息。

有什么方法可以让我在这里接收此信息而不是里面的拦截器

err => { debugger; need too get exception here },

原因是我返回了一个自定义错误,仅针对这个 Angular 组件(从我调用这个服务的地方),所以需要处理这个组件上的错误,但是这个项目已经配置了一个正在捕获的 HTTP 拦截器所有错误都集中在一处。

【问题讨论】:

标签: javascript angular rxjs angular6


【解决方案1】:

您可以像这样从 'rxjs/operators' 导入:

import { pipe, catchError } from 'rxjs/operators';

然后你可以在订阅之前使用它,如下所示:

this.someService.save(...args).pipe(catchError( err => console.log(err)).subscribe(); 

【讨论】:

    猜你喜欢
    • 2016-09-20
    • 1970-01-01
    • 2022-08-16
    • 2016-03-03
    • 1970-01-01
    • 2020-09-15
    • 1970-01-01
    • 1970-01-01
    • 2019-08-03
    相关资源
    最近更新 更多