在spring项目反应堆中,onErrorResume
和doOnError
有什么不同?我什么时候应该把它们都放在一起呢?
发布于 2019-10-01 13:33:54
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
。没有什么能阻止你这么做。
https://stackoverflow.com/questions/58167842
复制相似问题