gpt4 book ai didi

java - 获取 react 流的排列

转载 作者:行者123 更新时间:2023-11-30 05:47:43 26 4
gpt4 key购买 nike

我有两个应该异步工作的 react 流。因此,我应该调用 foo() 函数,该函数将采用两个参数,并使用两个初始 react 流中元素的所有可能排列进行调用。如果整个过程中发生任何异常,它应该失败。使用reactor-core来实现这一点的最佳方法是什么?

示例:

    String[] aInitial = {"a","b","c"};
String[] bInitial = {"0","1"};

Flux<String> fluxA = Flux.fromArray(aInitial);
Flux<String> fluxB = Flux.fromArray(bInitial);

...

private void foo(String a, String b){
System.out.println(a + ", " + b);
}

预期结果(顺序无关紧要):

a, 0 a, 1 b, 0 b, 1 c, 0 c, 1

最佳答案

不要在执行转换的方法中调用操作(在您的例子中为 System.out.println ),而是将其拆分为一个组合来自两者的元素的函数,以及另一个对数据进行操作的函数。

public static void main(String[] args) {

String[] aInitial = {"a", "b", "c"};
String[] bInitial = {"0", "1"};

Flux<String> fluxA = Flux.fromArray(aInitial);
Flux<String> fluxB = Flux.fromArray(bInitial);

fluxA
.flatMap(input1 -> fluxB.map(input2 -> foo(input1, input2)))
.doOnNext(System.out::println)
.blockLast();
}

private static String foo(String a, String b) {
return a + ", " + b;
}

正如您所看到的,我们迭代第一个 Flux,并使用第二个 Flux 创建某种嵌套循环。

请注意,这不适用于热通量,只有冷通量在这里起作用,因为我们需要为从第一个元素发出的每个元素重新订阅第二个通量。

关于java - 获取 react 流的排列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54565433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com