【问题标题】:Mono doOnEmpty in Reactor?反应堆中的单声道doOnEmpty?
【发布时间】:2019-03-07 09:11:52
【问题描述】:

Mono 上是否有任何操作员可以让我记录 mono 为空的事实?

我不能使用hasElement(),因为我需要结果,并且我不想引入像滥用switchIfEmpty这样的骇人听闻的解决方案

【问题讨论】:

    标签: project-reactor


    【解决方案1】:

    您可以使用doOnSuccess 并测试数据是否为空

    .doOnSuccess(data -> {
        if (data == null) {
            //onEmpty behavior
        }
    })
    

    【讨论】:

    • 请注意,doOnSuccess 仅在所需行为确实是副作用时才有效(例如更新某些指标或类似的东西)。例如,非常不希望调用另一个Flux/Monosubscribe,因为它会阻止所述发布者将其错误传播到主序列。但是switchIfEmpty 在这种情况下应该可以工作(因为它仅在源有效为空时才起作用,否则保持源值)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-09
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多