javascript - RxJS - 为什么我要使用 throwError 而不是简单地抛出错误?
问题描述
首先,我想明确一点,我知道 Rx throwError 运算符和 JS 的 throw 关键字的区别。我只是想知道为什么要使用 throwError 运算符?我通过创建一个新的 observable 获得了什么,它所做的只是在任何人订阅它时抛出一个错误?
长话短说,我为什么要这样做:
.catchError(err => throw "error!!")
在此:
.catchError(err => throwError("error!!"))
谢谢!
解决方案
如果你只是抛出一个错误,它将结束管道。如果你使用throwError
,它将返回一个新的 observable ,它将发出该错误,本质上会将它传递到管道中。throwError(error)
相当于:
return new Observable(observer=>{
observer.error(error)
})
推荐阅读
- angular - 使用角度从文件夹加载图像
- python-3.x - 使用 matplotlib 理解 3D 模拟语法的问题
- json - 如何解决flutter应用中json对象重复的问题?
- javascript - Gaugejs 与 taiko 对数据表有意外行为
- python - 如何有效地应用条件字符串方法将数据框列一分为二?
- android - 如何为 RatingBar 创建自定义弧视图?
- html - 控制器和函数如何使用 .emit 在两个单独的文件之间进行通信,以及如何在 AngularJS 中告诉控制器层次结构?
- sql-server - 在查询日期之间没有按我的意愿工作
- neo4j - 获取 Neo.ClientError.Statement.SemanticError:无法使用空属性合并节点
- recaptcha - 我如何找到 Google ReCaptcha V2 回调函数名称