Mono - 通量 switchIfEmpty 和 onErrorResume

Posted

技术标签:

【中文标题】Mono - 通量 switchIfEmpty 和 onErrorResume【英文标题】:Mono - Flux switchIfEmpty and onErrorResume 【发布时间】:2021-11-28 11:27:38 【问题描述】:

在项目反应器中是否可以同时实现带有switchIfEmptyonErrorResume 的流?

infoRepository.findById(id); //returns Mono<Info>

如果是empty or error then switch to the same backup stream

【问题讨论】:

【参考方案1】:

没有 single 运算符可以一起完成这些事情,但是您可以在出现错误时轻松切换到空发布者,然后通过 switchIfEmpty 处理这两种情况,例如:

infoRepository.findById(id)
              .onErrorResume(e -> Mono.empty())
              .switchIfEmpty(newPublisher);

【讨论】:

以上是关于Mono - 通量 switchIfEmpty 和 onErrorResume的主要内容,如果未能解决你的问题,请参考以下文章

switchIfEmpty 总是被调用

如果通量为空,则副作用运算符(或类似运算符)

从通量转换为单声道

如何从Mono获取实体类型 ?

杰克逊反序列化阵列通量

Spring webflux:从请求中消耗单声道或通量