java-8 - Java 8 反应流中的嵌套通量
问题描述
我有 3 个返回通量语句,都嵌套在另一个中,如下所示:- 我在 3 个存储库中有 3 个项目-> reactiveRepo1,2,3
下面的代码片段会返回 27 个不同的苹果吗?
private Flux<Apple> method() {
Apple A = new Apple();
return reactiveRepo1.findAll()
.flatMap(item -> {
A.setProp1(item.getSomething())
return reactvieRepo2.findAll()
.flatMap(item2 -> {
A.setProp2("item.getSomething2()")
return reactiveRepo3.findAll()
.flatMap(item3 -> {
A.setProp3("item.getSomething3()");
return A;
});
});
});
}
解决方案
你可以做这样的事情
private Flux<Apple> method() {
return Flux.zip(Array.asList(
reactiveRepo1.findAll(),
reactvieRepo2.findAll(),
reactiveRepo3.findAll()),
arrayReturnValues -> {
...
}
);
}
其中arrayReturnValues是一个数组,其中包含从所有存储库中检索到的所有值。在...中,您必须编写一个处理返回值的函数
推荐阅读
- java - ConfigObj 在 conf 文件中添加新行
- python - Numpy 数组根据条件返回行
- flutter - Flutter:带有 StreamBuilder 小部件的可滚动小部件
- python - 错误 [07002] [Microsoft][ODBC Microsoft Access Driver] 参数太少。执行 DELETE 时预期为 1
- python - 使用 Beautifulsoup 抓取数据时如何忽略 utf-8 编码
- python - 自不推荐使用熊猫面板以来,3D numpy 数组到数据框
- jquery - jquery 悬停功能适用于向上滚动和向下滚动,尽管在一部分中使用
- xml - PowerPoint VBA/自定义 UI XML:切换/复选框 getPressed 动态更新
- css - 如何在 react.js 的网格布局中为不同的网格项赋予不同的背景颜色
- firebase - 从firebase以正确的方式下载数据以填充listView