gpt4 book ai didi

javascript - catch 和 onErrorResumeNext 的区别

转载 作者:数据小太阳 更新时间:2023-10-29 04:36:54 25 4
gpt4 key购买 nike

在 RxJS 中,Observable 实例的 catch 方法和 onErrorResumeNext 方法之间似乎没有什么区别,除了 onErrorResumeNext 连接原始 Observable 与 Observable 参数是否发生错误。

这样的话,命名是不是有点乱?因为如果出现错误,onErrorResumeNext 的工作方式与 catch 的工作方式完全相同:

var testObservable = Rx.Observable.return(1).concat(Rx.Observable.throw("Error"))

// Both onError and onCatch will emit the same result: 1, 2
var onError = testObservable.onErrorResumeNext(Rx.Observable.return(2));
var onCatch = testObservable.catch(Rx.Observable.return(2));

是否有充分的理由不总是使用 catch

最佳答案

它们是不同的。

正如您所注意到的,两个运算符处理失败的方式相似;但是,它们在完成处理方面有所不同。

OnErrorResumeNext 只是具有以下语义的特化:

“我的查询连接两个可观察对象。如果第一个可观察对象失败,则继续 下一个可观察对象。”

Catch 更为通用:

“我的查询避免失败。如果 observable 失败,则继续另一个 observable。”

如果要避免连接边界上的失败,请使用 OnErrorResumeNext;否则,为避免一般情况下的失败,请使用 Catch

关于javascript - catch 和 onErrorResumeNext 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26634004/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com