【发布时间】:2017-11-25 11:57:15
【问题描述】:
我发现自己正在使用以最新 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
}
);
我主要找到第一个版本,但是...
不处理订阅错误不是问题吗?
这不会使代码不那么可靠、可测试并且更容易失败吗?
【问题讨论】:
-
如果您想处理错误并对错误采取一些措施,最好设置错误 Cb。
-
@YordanNikolov 是的,我确实在我的 observables 上设置了 Cb,或者至少是其中的大部分。但我的问题更多是关于良好实践以及为什么受人尊敬的开发人员似乎“不遵循”它们。也许有一种我还不知道的不同处理方式。也许它直接在 Observable 声明中处理(例如 Http 请求)
-
对我来说,处理所有错误以通知用户,将这些错误发送到后端并跟踪它总是一个好习惯。我想到的另一个最佳实践是,使用单独的函数处理程序(函数语句)而不是 IIF。
-
@YordanNikolov 100% 与您同在。这就是我提出问题的原因,为什么不处理这些错误。也许是有原因的。
标签: javascript angular typescript error-handling