You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kotlin协程Mono代码块:abc为null时返回值及返回Mono.empty()的方法

Kotlin协程中Mono代码的返回值问题

原代码在abc为null时的返回值

当abc为null时,这段代码会返回一个包含null值的Mono<Int?>——它不会触发空Mono的逻辑,而是把null作为一个合法的元素发射出去,订阅者会收到null值而非空信号。

修改代码使其在abc为null时返回Mono.empty()

你可以通过在协程块内判断null值,直接返回空Mono:

mono {
    val abc: Int? = getSomeValue().awaitSingleOrNull
    abc ?: return@mono empty<Int>()
}

或者更简洁的写法:

mono {
    getSomeValue().awaitSingleOrNull ?: empty<Int>()
}

这样当abc为null时,协程会返回Mono.empty();当abc非null时,会返回包含该值的Mono<Int>,同时类型也从Mono<Int?>变成了更严谨的Mono<Int>。

内容的提问来源于stack exchange,提问作者M_nik B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 17:45:49