如果有以下
Flux<String> flux1 = ...
Flux<String> flux2 = ...
Flux<String> mergedFlux = flux1.merge(flux2);
如何/何时/为什么mergedFlux会完成?
最小惊喜的原则可能暗示它将在任何合并的助焊剂完成时完成。但是,这不是我见证的。
答案 0 :(得分:2)
合并的语义是尝试穷举将Flux
的交错发射重放为单个Flux
。因此,合并的Flux
仅在两个来源完成时才会完成。
与像zip
这样的运算符形成对比,该运算符旨在通过从每个源中获取一个元素来生成尽可能多的对。因此,当任何源完成时它就会完成,因为从那时起它就不能再生成对了。