【发布时间】:2019-03-07 09:11:52
【问题描述】:
Mono 上是否有任何操作员可以让我记录 mono 为空的事实?
我不能使用hasElement(),因为我需要结果,并且我不想引入像滥用switchIfEmpty这样的骇人听闻的解决方案
【问题讨论】:
标签: project-reactor
Mono 上是否有任何操作员可以让我记录 mono 为空的事实?
我不能使用hasElement(),因为我需要结果,并且我不想引入像滥用switchIfEmpty这样的骇人听闻的解决方案
【问题讨论】:
标签: project-reactor
您可以使用doOnSuccess 并测试数据是否为空
.doOnSuccess(data -> {
if (data == null) {
//onEmpty behavior
}
})
【讨论】:
doOnSuccess 仅在所需行为确实是副作用时才有效(例如更新某些指标或类似的东西)。例如,非常不希望调用另一个Flux/Monosubscribe,因为它会阻止所述发布者将其错误传播到主序列。但是switchIfEmpty 在这种情况下应该可以工作(因为它仅在源有效为空时才起作用,否则保持源值)