怎么做像“ onErrorFlatMap”之类的东西并停留在Spring反应的“错误轨道”中?

时间:2019-01-25 12:18:47

标签: spring project-reactor

比方说,助焊剂或Mono产生错误,并且我想在发生此错误时执行非阻塞性副作用,例如发送电子邮件。我想要实现的是这样的:

val myMono = ..
myMono.onErrorFlatMap { throwable ->
    emailService.sendEmail(...).map(throwable)
}

在发送电子邮件之后,我想继续走在“错误轨道”上,即无法使用onErrorResume(..)之类的方法恢复。我该怎么办?

1 个答案:

答案 0 :(得分:1)

onErrorResume仍然是首选方式:

mono.onErrorResume(e -> emailService.sendEmail(...)
                                    .then(Mono.error(e))
);