Mono<Mono<Object>> 如何订阅
Mono<Mono<Object>> how to subscribe
我正在尝试创建以下链:
Mono<Object1> oneMono = Mono.just("1");
Mono<Object2> twoMono = Mono.just("2");
Mono<Mono<Object5>> resultMono = Mono.zip(oneMono, twoMono, (one, two) -> {
Mono<Object3> threeMono = Mono.just("3");
Mono<Object4> fourMono = Mono.just("4");
return Mono.zip(threeMono, fourMono, (three, four) -> {
return "5";
}
}) // get just Mono<Object5> here?
resultMono.subscribe(mono -> {
mono.subscribe(); // ugly double subscribe() !!
});
因此我需要得到 5。但是在执行 1、2 和 3、4 之前。
代码运行良好,但我想退出
来自 Mono<Mono<Object5>>
和 double subscribe
到Mono<Object5>
和single subscribe
。
是否有 Zip 的模拟平面地图?
嗯,你已经有了。你只需要使用 flatMap:
Mono<String> oneMono = Mono.just("1");
Mono<String> twoMono = Mono.just("2");
Mono.zip(oneMono, twoMono, (one, two) -> {
Mono<String> threeMono = Mono.just("3");
Mono<String> fourMono = Mono.just("4");
return Mono.zip(threeMono, fourMono, (three, four) -> {
return "5";
});
})
.flatMap(stringMono -> stringMono)
.doOnNext(System.out::println)
.subscribe();
我正在尝试创建以下链:
Mono<Object1> oneMono = Mono.just("1");
Mono<Object2> twoMono = Mono.just("2");
Mono<Mono<Object5>> resultMono = Mono.zip(oneMono, twoMono, (one, two) -> {
Mono<Object3> threeMono = Mono.just("3");
Mono<Object4> fourMono = Mono.just("4");
return Mono.zip(threeMono, fourMono, (three, four) -> {
return "5";
}
}) // get just Mono<Object5> here?
resultMono.subscribe(mono -> {
mono.subscribe(); // ugly double subscribe() !!
});
因此我需要得到 5。但是在执行 1、2 和 3、4 之前。
代码运行良好,但我想退出
来自 Mono<Mono<Object5>>
和 double subscribe
到Mono<Object5>
和single subscribe
。
是否有 Zip 的模拟平面地图?
嗯,你已经有了。你只需要使用 flatMap:
Mono<String> oneMono = Mono.just("1");
Mono<String> twoMono = Mono.just("2");
Mono.zip(oneMono, twoMono, (one, two) -> {
Mono<String> threeMono = Mono.just("3");
Mono<String> fourMono = Mono.just("4");
return Mono.zip(threeMono, fourMono, (three, four) -> {
return "5";
});
})
.flatMap(stringMono -> stringMono)
.doOnNext(System.out::println)
.subscribe();