在Spring Project Reactor中,onErrorResumedoOnError有什么区别?什么时候我应该每个人?

最佳答案

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。没有任何事情可以阻止您这样做。

关于spring - onErrorResume和doOnError之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58167842/

10-12 22:56