【问题标题】:RxJS observables catch errors without the error callbackRxJS observables 在没有错误回调的情况下捕获错误
【发布时间】:2021-06-04 21:44:45
【问题描述】:

我想知道是否有办法在可观察的没有错误回调的情况下捕获订阅错误?

例如,你会捕捉到这样的错误

 .subscribe({
 next: (obj) => {
    // Placeholder for code
 },

 // At the moment we need to include this error callback to show that an error has happened.
 // Forgetting to put this in means it 'bubbles' up so we cannot catch it and do anything with it.
 error: (e) => {
    this.showError(e.message);
 }, 

但是如果你看上面的评论,这就是不包括回调时会发生的情况。

忘记把它放进去意味着它会“冒泡”,所以我们无法抓住它并用它做任何事情。

更明确地说,即使在方法周围加上 try-catch 也不会捕获错误。

我想知道这一点,因为如果由于某种原因,开发人员忘记放入 catch 回调,有什么方法可以捕获它?因为如果不是,则无法处理错误。

我认为问题在于,作为一个可观察对象是一个异步进程,它发生在一个新线程/任务上。

谢谢

【问题讨论】:

    标签: angular rxjs rxjs-observables


    【解决方案1】:

    如果你在 observable 中使用catchError,你可以避免需要错误回调。在流本身而不是在订阅时处理错误是很常见的。

    类似

    source.pipe(
            catchError(err => {
              console.error(err);
            }).subscribe(...)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-05
      • 2011-02-07
      • 2016-11-30
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-06
      相关资源
      最近更新 更多