如何做类似 "onErrorFlatMap" 的事情并在 Spring 反应中保持 "error rail"?

How to do something like "onErrorFlatMap" and stay in "error rail" in Spring reactive?

假设 Flux 或 Mono 产生错误,我想在发生此错误时执行非阻塞副作用,例如发送电子邮件。我想要实现的是这样的:

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

我想在电子邮件发送后继续 "error rail",即不使用 onErrorResume(..) 之类的东西恢复。我该怎么做?

onErrorResume 仍然是首选方式:

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