当前位置: 首页 > 知识库问答 >
问题:

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

鲁羽
2023-03-14

我的代码是这样构造的-

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

我正在努力实现这一点:

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

代码:

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

虽然调用了method2(),但MongoDB中的文档更新没有发生。

共有1个答案

从开济
2023-03-14

您的代码片段正在返回Mono

您可能应该像这样使用Mono.flatMap运算符:

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

这个运营商将使运营链扁平化。

 类似资料:
  • 我是整个Spring反应性网络流量的新手。我的问题很简单。在我的addActions()我试图得到一个单声道通过调用getMONtVal()。这工作罚款。但是我需要得到它的值并更新一个属性(submission.state瓦尔)。然后传递调用CustService.addActions(),返回Mono。可以做到这一点而不使用块()?

  • 我写了一个@Aspect来拦截以Mono/Flux返回值的被动方法。使用@AfterReturning advice,我试图通过调用webservice发出APNS通知。 不幸的是,processNotification Mono服务在没有执行调用链的情况下立即返回onComplete信号。下面是我的示例程序。 我们如何在不等待侦听的情况下异步触发此调用。。目前,processNotificati

  • 我有一个spring boot反应式应用程序。如果用户还不存在,我想在其中实现创建用户。这样地: 我真正不喜欢的是我需要使用。有没有更好的方法? 最大的问题是两者都有循环依赖关系,因为UserRepository需要知道用户名,而userDTO stream需要知道这是否已经存在并返回mono。

  • 我正在努力实现以下目标: 我有两种方法——1。公共方法1 2。公共方法2 你能帮助: 问题是,只有在使用method1.subscribe()时,控件才会转到方法1。我无法返回值或抛出异常基于状态字段从方法1返回。 当method1.map()或method1.filter()时,控件甚至不会转到方法1 当方法1返回Mono.empty(),那么控件不会切换到If清空(方法2)

  • 我在Azure Active Directory中有一个租户场景,其中API1需要使用身份验证调用另一个API2,并且API1是从SPA调用的。 只是将API1中从SPA接收到的用户JWT传递给调用API2进行身份验证是否正确? 类似于:https://github.com/azure-samples/active-directory-dotnet-webapi-onbehalfof

  • Java,我们可以从另一个类调用main()方法吗?例如,ClassA应该在命令行上运行,因为它定义了main(String[]args)方法。 我想把这个叫做ClassA,在ClassB里面。是否初始化类的新对象,如 或者是否有一种方法可以在ClassB中传递ClassA的命令行选项。 谢啦