如何通过合并构建的Flux完成

时间:2017-04-14 18:00:37

标签: project-reactor

如果有以下

Flux<String> flux1 = ...
Flux<String> flux2 = ...
Flux<String> mergedFlux = flux1.merge(flux2);

如何/何时/为什么mergedFlux会完成?

最小惊喜的原则可能暗示它将在任何合并的助焊剂完成时完成。但是,这不是我见证的。

1 个答案:

答案 0 :(得分:2)

合并的语义是尝试穷举Flux的交错发射重放为单个Flux。因此,合并的Flux仅在两个来源完成时才会完成。

与像zip这样的运算符形成对比,该运算符旨在通过从每个源中获取一个元素来生成尽可能多的对。因此,当任何源完成时它就会完成,因为从那时起它就不能再生成对了。