在另一个 Reactor Flux 中迭代来自 Reactor Flux 的项目
Iterate over items from a Recator Flux in another Reactor Flux
我有我的 Flux flux1,当我迭代它时,我还想在其中再次启动这个 Flux,这样我就可以在迭代 flux1 的项目时从 flux1 访问我的所有项目。基本上这样做,但使用 Flux:
for(item in flux1){
for(item2 in flux1){
//xxxxx
}
}
谢谢
一种可能的解决方案是嵌套 flatmap
,如下所示:
Flux<String> flux = Flux.just("a", "b", "c");
flux.flatMap(item -> flux.flatMap(item2 ->
doSomethingAsync(item, item2).doOnNext(e -> log.info("doSomethingAsync({}, {});", item, item2))))
打印:
doSomethingAsync(a, a);
doSomethingAsync(a, b);
doSomethingAsync(a, c);
doSomethingAsync(b, a);
doSomethingAsync(b, b);
doSomethingAsync(b, c);
doSomethingAsync(c, a);
doSomethingAsync(c, b);
doSomethingAsync(c, c);
我有我的 Flux flux1,当我迭代它时,我还想在其中再次启动这个 Flux,这样我就可以在迭代 flux1 的项目时从 flux1 访问我的所有项目。基本上这样做,但使用 Flux:
for(item in flux1){
for(item2 in flux1){
//xxxxx
}
}
谢谢
一种可能的解决方案是嵌套 flatmap
,如下所示:
Flux<String> flux = Flux.just("a", "b", "c");
flux.flatMap(item -> flux.flatMap(item2 ->
doSomethingAsync(item, item2).doOnNext(e -> log.info("doSomethingAsync({}, {});", item, item2))))
打印:
doSomethingAsync(a, a);
doSomethingAsync(a, b);
doSomethingAsync(a, c);
doSomethingAsync(b, a);
doSomethingAsync(b, b);
doSomethingAsync(b, c);
doSomethingAsync(c, a);
doSomethingAsync(c, b);
doSomethingAsync(c, c);