【发布时间】:2019-10-27 06:00:52
【问题描述】:
设置:
public Mono<String> getResult(Mono<Boolean> flagMono, Mono<String> resultMono) {
return flagMono.map(flag -> {
if (flag) return "FLAG IS TRUE, SKIP RESULT";
return resultMono.block(); // how to do without blocking?
});
}
希望我要完成的工作很明确,只需正确写出即可。如果flag为真我想返回字符串常量,否则以非阻塞方式返回resultMono返回的字符串结果。
【问题讨论】:
-
也许使用 flatMap 代替 map 并返回 resultMono...?
-
如果计算结果可能需要阻塞,那么我看不出你如何想象在没有任何阻塞可能性的情况下返回它。但是您也许可以启动一个异步计算并返回一个
Future,当它可用时,稍后可以从中获取结果。
标签: java asynchronous reactive-programming spring-webflux project-reactor