spring - 如何处理具有 Mono 的响应
问题描述
我有一个像下面这样的响应对象,我需要返回给我的服务的调用者。我需要返回一个 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?
谢谢。
解决方案
使用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>
推荐阅读
- r - Keras 中一维卷积的展平层
- sql-server - 再次递归 tsql sql 优化
- python - 如何继承 Django 变量?
- linux - 父进程终止时脚本死亡
- python - 如何从python字典中提取列表中的项目
- jquery - ASP.NET Web 窗体 - 在 jQuery 对话框内的页面回发上查看状态错误
- angularjs - 带有 TypeScript $resource 错误的 AngularJS:“响应与配置的参数不匹配”
- python - 支持ELK日志解析中的多行模式
- python - 如何修复保存的模型以避免“ValueError:您正在尝试将包含 3 层的权重文件加载到具有 0 层的模型中。”
- javascript - 包含初始值后的 Array.prototype.reduce() 错误