throw new Error()
和Observable.throw()
之间是否有区别?如果是,那又是什么?显然,因为Observable.throw
存在,所以有一些原因,但除了较短的堆栈跟踪之外,我找不到任何差异。
答案 0 :(得分:4)
Observable.throw
在流中返回错误。例如,我期待Observable
,但出于某种原因,我想返回一个错误。这些情况无法使用throw new Error()
。
例如:
var source = someStream$
.flatMap(data => data?
Rx.Observable.of(data): // Or any other async operation
Rx.Observable.throw('invalid data'));
这里flatMap
期望一个Observable流,如果我们需要使用throw new Error()
,我们需要做一个hack。
对于rx运算符,我可能还有其他优点,我不知道。