假设我有如下两个通量:
Flux<Integer> f1 = Flux.just(10,20,30,40);
Flux<Integer> f2 = Flux.just(100,200,300,400);
现在我想把这些通量组合成一个通量或者两个通量的元组,在一个通量中包含两个通量元素。
我使用zipwith方法尝试了以下操作:
Flux<Integer, Integer> zipped = f1.zipWith(f2,
(one, two) -> one + "," +two)
.subscribe();
但是这给出了一个编译时错误:
Incorrect number of arguments for type Flux<T>; it cannot be parameterized with arguments <Integer, Integer>
我怎样才能做到这一点?请建议。
Flux只有一个类型参数,所以< code>Flux
因此,从本质上讲,您将两个整数映射到一个字符串,因此压缩
的类型应该是Flux。
或者,您可以映射到自己创建的特殊元组类(或者从您正在使用的库中):
public class Pair<A,B> {
private final A first;
private final B second;
public Pair(A first, B second) {
this.first = first;
this.second = second;
}
public A getFirst() {
return first;
}
public B getSecond() {
return second;
}
}
然后,您可以按如下方式映射它:
Flux<Integer> f1 = Flux.just(10,20,30,40);
Flux<Integer> f2 = Flux.just(100,200,300,400);
Flux<Pair<Integer,Integer>> result = f1.zipWith(f2,
(one, two) -> new Pair<>(one, two));
或者更短:
Flux<Pair<Integer,Integer>> result = f1.zipWith(f2, Pair::new);
首先,我对反应式编程有点陌生。在参加了一些关于reactor和spring 5.0的演讲后,我想自己尝试一下这个编程模型。 我有一个应用程序,它使用WebClient从不同的API构建两个Flux对象。我想将这2个对象组合成一个并将其返回给用户。 代码示例如下所示: 现在在我的handler方法中: 我应该使用反应器API中的什么方法来实现这一点?我找到了一些方法来组合像组合最新的对象,但是在这种
问题内容: 尝试查看是否有任何JavaScript库功能可以合并两个json对象的特定键的值 使用$ .extend和$ .merge给出以下结果 我正在寻找的是 问题答案: 您想深入扩展
问题内容: 我可以使用通用的特定于Javascript / Coffeescript的习惯用法吗?主要出于好奇。 我有两个数组,一个数组由所需的键组成,另一个数组由所需的值组成,我想将其合并到一个对象中。 问题答案: var r = {}, i, keys = [‘one’, ‘two’, ‘three’], values = [‘a’, ‘b’, ‘c’];
主要的问题是第五次会议的形式是什么
我用平面图附加通量,但如果我添加其他平面图,则只返回最后一个平面图。 我需要在通量上处理每个Mono函数,但我似乎无法让每个函数正确执行和返回。
给定两个数组,其中数组1包含变量,数组2包含变量的值,我希望得到这两个数组的所有可能组合,例如: 数组可以容纳尽可能多的变量,也可以容纳。 所需输出: 我尝试了一种递归方法: 我希望能够将每一行正确的内容保存为中的一个元素,但首先我想知道如何正确打印每一行。 编辑:第二个数组不是常量,它在每个变量之间不同: 显然,这在递归中行不通,因为我需要将每个数组与变量数组一起发送,我通过创建一个对象来实现这