我想做如下的事情。在 Mono.fromCallable 中,我运行一些 block 逻辑,然后根据值返回 Mono.empty() 或值,以便它触发映射或 defaultIfEmpty。
Mono.fromCallable(() -> {
double number = Math.random();
if (number < 0.5) {
return Mono.empty();
}
return number;
})
.map(number -> 1)
.defaultIfEmpty(0)
这给出了一个错误,因为 Mono.fromCallable 期望一个一致的返回值。如何调整代码以使其工作?
最佳答案
尽管在 Reactor API 中通常禁止返回 null
,但 Callable
可能会返回一个有效值,Reactor 会通过转换为空 来正确处理它单声道
:
Mono.fromCallable(() -> {
double number = Math.random();
if (number < 0.5) {
return null;
}
return number;
})
关于spring-webflux - 从 Mono.fromCallable 返回 Mono.empty(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63333541/