繁体   English   中英

如何防止在错误处理程序中引发错误?

[英]How can I prevent throwing errors in errorhandler?

当前,在我的一种服务方法中,我有如下内容:

this.get(foo).catch((e) => this.errorHandler(e));

其中errorHandler是:

errorHandler(error: HttpErrorResponse) {

    if (error.status === 422) {
      this.openSnackBar('Number already exists');
      return Observable.throw(error.message || 'Server Error');
    } else {
      return Observable.throw(error.message || 'Server Error');
    }
  }

虽然这很好用,但会引发错误,并且可以在控制台窗口中看到报告。 我想知道在处理用户友好消息中的错误(例如上面的小吃店示例)时,如何防止在控制台窗口中引发/显示错误?

我只想捕获错误,检查状态并返回带有用户友好消息的小吃店。 我注意到如果删除上面的代码,代码将停止工作。

在处理完异常之后(例如,通过显示警报,吐司等),请返回Observable.empty()而不是Observable.throw Observable.empty是一个可观察的对象,可立即“完成”,而无需“下一步”添加任何值; 这将正确停止您的可观察流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM