我发现自己在使用最新的Angular版本编写的主题代码并搜索网络,我发现大多数开发人员都不处理subscription
错误。
我的问题是:什么时候必须处理Observable
订阅中的错误?
无错误处理:
this.myService.observable$.subscribe(
(data) => {
// do stuff with data
}
);
字符串
使用错误处理:
this.myService.observable$.subscribe(
(data) => {
// do stuff with data
},
err => {
// do stuff with error
}
);
型
我基本上都能找到第一个版本,但是...
不处理订阅的错误不是一个问题吗?
这难道不会使代码不那么可靠、可测试、更容易失败吗?
3条答案
按热度按时间guykilcj1#
为什么错误处理很重要click Me
现在让我们看看为什么在Observables中需要错误处理。
范例:
字符串
44u64gxh2#
处理错误以向用户提供反馈或退回到默认行为是一个很好的实践。
例如,如果您尝试联系REST服务,并且发生了通信,那么您可能希望通知用户有关连接问题或加载缓存数据。
或者如果REST服务返回错误。例如,您的应用程序是一个预订应用程序,用户正在执行订单,但一旦他提交订单,库存中就没有更多的项目。REST服务返回错误,您应该向用户显示没有更多项目。
在Angular Style Guide中:
数据管理的细节,如头、HTTP方法、缓存、错误处理和重试逻辑,与组件和其他数据使用者无关。
这意味着您应该从服务返回有意义的消息。
ojsjcaue3#
与您的问题无关,但以下是如何在Angular 16上处理订阅内部的错误:
字符串