消耗Mono值并使用它调用另一个Mono

时间:2018-12-27 17:24:07

标签: reactive-programming spring-webflux project-reactor

我的代码采用这种结构-

Mono<Address> m1 = method1() // this call returns address
Mono<Boolean> m2 = method2() // this call uses ReactiveMongoTemplate and updates document in Mongo

我正在努力实现这一目标:

当method1()返回我的地址时,我需要使用它并调用method2()来更新MongoDB文档中的地址。也没有抛出异常。但是我在method2()中看不到任何日志

代码:

Mono<Object> m1 = method1().map(address -> method2(address));

尽管调用了method2(),但MongoDB中的文档更新并未发生。

1 个答案:

答案 0 :(得分:0)

您的代码段返回Mono<Mono<Boolean>>,因此没有订阅内部Mono

您可能应该像这样use the Mono.flatMap operator

Mono<Boolean> m1 = method1().flatMap(address -> method2(address));

该操作员将拉平操作链。