我想做如下的事情。在Mono.fromCallable中,我运行一些块逻辑,然后根据值返回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期望返回值是一致的。如何调整代码以使其工作?
发布于 2020-08-10 08:23:31
虽然在反应堆APIs中通常禁止返回null,但Callable可能返回的是一个有效值,反应器通过转换为空的Mono正确地处理它。
Mono.fromCallable(() -> {
double number = Math.random();
if (number < 0.5) {
return null;
}
return number;
})https://stackoverflow.com/questions/63333541
复制相似问题