首页 > 解决方案 > RxJS - 为什么我要使用 throwError 而不是简单地抛出错误?

问题描述

首先,我想明确一点,我知道 Rx throwError 运算符和 JS 的 throw 关键字的区别。我只是想知道为什么要使用 throwError 运算符?我通过创建一个新的 observable 获得了什么,它所做的只是在任何人订阅它时抛出一个错误?

长话短说,我为什么要这样做:

.catchError(err => throw "error!!")

在此:

.catchError(err => throwError("error!!"))

谢谢!

标签: javascriptangularangularjsrxjs

解决方案


如果你只是抛出一个错误,它将结束管道。如果你使用throwError,它将返回一个新的 observable ,它将发出该错误,本质上会将它传递到管道中。throwError(error)相当于:

return new Observable(observer=>{
      observer.error(error)
    })

推荐阅读