Java 8 Java8反应流中的嵌套流量

Java 8 Java8反应流中的嵌套流量,java-8,spring-webflux,Java 8,Spring Webflux,我有3个返回通量语句,它们相互嵌套,如下所示:- 我在3个存储库中有3个项目->reactiveRepo1,2,3 下面的代码片段会返回27个不同的苹果吗 private Flux<Apple> method() { Apple A = new Apple(); return reactiveRepo1.findAll() .flatMap(item -> { A.setProp1(item.getSomething()

我有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;
                        });
                });
         });

}
专用流量方法(){
苹果A=新苹果();
返回reactiveRepo1.findAll()
.flatMap(项目->{
A.setProp1(item.getSomething())
返回reactvieRepo2.findAll()
.flatMap(项目2->{
A.setProp2(“item.getSomething2()”)
返回reactiveRepo3.findAll()
.flatMap(项目3->{
A.setProp3(“item.getSomething3()”);
返回A;
});
});
});
}

您可以这样做

private Flux<Apple> method() {
    return Flux.zip(Array.asList(
        reactiveRepo1.findAll(),
        reactvieRepo2.findAll(),
        reactiveRepo3.findAll()),
        arrayReturnValues -> {

            ...

        }
    );
}
专用流量方法(){
返回Flux.zip(Array.asList(
reactiveRepo1.findAll(),
reactvieRepo2.findAll(),
reactiveRepo3.findAll()),
arrayReturnValues->{
...
}
);
}

其中arrayReturnValues是一个数组,包含从所有存储库检索到的所有值。在。。。您必须编写一个处理返回值的函数

通量是管道,而不是循环。另外,3^3=27。进行了修正。那么,在这种情况下,如何使用循环呢?那么,在所有情况下,我将有9个值?是的,你将有一个9个元素的数组,Objecti正在寻找3^3=27,即所有可能的组合