在Spring Project Reactor中,onErrorResume
和doOnError
有什么区别?什么时候我应该每个人?
最佳答案
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/