【发布时间】:2019-02-05 15:46:39
【问题描述】:
这是样板代码:我想做这样的事情-
public Flux<Object2> getSomething(String email) {
method1(email).map(result -> { //method1 returns Mono<Object1>
if(result.id().isEmpty()) {
return method2(email); //method2 returns Flux<Object2>
} else {
return Flux.empty();
}
};
});
所以,当method1返回一个空的Object1.id(),那么就只调用method2。否则返回空通量。
需要注意的地方是-
没有到达第二个方法调用
由于一种方法是Mono,另一种是Flux,所以我在第2行直接加return会出现类型不匹配。
-
我在方法 1 中尝试过:
if(Object1.id().isEmpty()){ throw new IllegalArgumentException; }
和上面的代码 sn-p :
try {
method1(email);
} catch(IllegalArgumentException e) {
return method2(email);
}
从不在这里捕获异常。
【问题讨论】:
标签: spring-boot reactive-programming spring-webflux project-reactor reactor