【发布时间】:2020-01-29 17:53:22
【问题描述】:
在spring project reactor中,onErrorResume和doOnError有什么区别?我什么时候应该每个人?
【问题讨论】:
在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。没有什么能阻止你这样做。
【讨论】: