【问题标题】:The difference between onErrorResume and doOnErroronErrorResume 和 doOnError 的区别
【发布时间】:2020-01-29 17:53:22
【问题描述】:

在spring project reactor中,onErrorResumedoOnError有什么区别?我什么时候应该每个人?

【问题讨论】:

    标签: spring project-reactor


    【解决方案1】:

    onErrorResume:当上游发生一些异常时给出一个回退流。

    doOnError:副作用运算符。假设您想记录上游发生的错误。

    例子:

    Mono.just(request)
    .flatMap(this::makeHTTPGet)
    .doOnError(err -> {
            log.error("Some error occurred while making the POST call",err)
        })
    .onErrorResume(err -> Mono.just(getFallbackResponse()));
    

    你看,doOnError 是一个副作用运算符。这就像将温度计插入水管并读取温度。它会影响管道吗?没有。

    假设现在管道破裂 - 城市仍然需要取水,对吗?所以我们有一个可以在这种情况下激活的备用管道。 onErrorResume 正是这样做的。

    注意:您也可以登录onErrorResume。没有什么能阻止你这样做。

    【讨论】:

    • @MeladBasilius 对你有用吗?如果是,那么请考虑接受它。谢谢。
    • 这个解释太好了!
    猜你喜欢
    • 2023-04-08
    • 2021-11-28
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 2020-07-02
    • 2013-08-07
    • 2011-10-20
    相关资源
    最近更新 更多