我有一个如下所示的响应对象,我需要返回给服务的调用者。我需要返回R的实例。
public class R {
private A a;
private B b;
}
我进行了2次服务调用,以从一个服务获得Mono,从另一个服务获取Mono。
现在,我尝试以以下方式进行这些服务调用。我不知道如何创建“ C”的实例并设置从服务调用返回的值A和B。
Mono.empty() .concatWith(//Call that returns Mono<A>)
.concatWith(//Call that returns Mono<B>)
.??? // What do I do now? How to get A and B and
// set it in a new instance of C?
谢谢。
答案 0 :(得分:1)
使用Mono#zipWith
,然后使用map
:
Mono<A> aMono = Mono.just(new A());
Mono<B> bMono = Mono.just(new B());
aMono.zipWith(bMono)
.map(t -> new R(t.getT1(), t.getT2()));
或static
zip
方法
Mono.zip(aMono, bMono, R::new); // returns Mono<R>