【发布时间】:2022-10-14 00:17:23
【问题描述】:
我需要以增量方式进行 3 项检查。
Mono<Boolean> isRegistered(Student std);
Mono<Boolean> isEligible(Student std);
Mono<Boolean> isAvailable(Student std);
每个方法在内部执行检查并返回true / false
如果任何检查返回false,我想要一个将停止流程并引发错误的逻辑
像这样的东西:
Mono<Boolean> checkAll(Student std) {
return isRegistered(std) && isEligible(std) && isAvailable(std);
}
我尝试使用Mono.zip(),但它只允许 2 个参数,也不允许仅在第一个条件为真后运行第二个条件。
我也像这样尝试过Mono.defer().then()
return Mono.defer(() ->
isRegistered(std))
.then(Mono.defer(() -> isEligible(std))
.then(Mono.defer(() ->isAvailable(std));
但问题是如果任何一个条件是true,它就会返回true
只有当第一种方法是 true 时,我才想调用第二种方法
我是弹簧反应的新手,任何帮助表示赞赏。
提前致谢。
【问题讨论】:
标签: java reactive-programming spring-webflux