你能合并两个Flux,没有阻塞,结果只包含独特的元素吗?

时间:2018-06-01 21:59:42

标签: reactive-programming spring-webflux project-reactor

有没有办法合并两个Flux,结果只包含唯一元素?我可以阻止输出然后将其转换为一个集合,但有没有一种方法依赖于阻塞?

来源(Kotlin)

val set1 = Flux.just(1, 2, 3, 4, 5)
val set2 = Flux.just(2, 4, 6, 8, 10)

val mergedSet = set1.mergeWith(set2)

println(mergedSet.collectList().block())

输出

[1, 2, 3, 4, 5, 2, 4, 6, 8, 10]

期望的输出(顺序并不重要)

[1, 2, 3, 4, 5, 6, 8, 10]

1 个答案:

答案 0 :(得分:2)

您可以使用Flux的merge方法,然后将distinct()应用于该方法。

{{1}}

通过这种方式,您可以获得仅产生不同值的通量。