sul*_*man 6 java spring-boot project-reactor spring-webflux
我想将一个通量分成两个通量,其中第一个通量具有原始通量的第一个项目,第二个将采用其余项目。
在myLogic
对每个通量应用自定义转换后,我想将它们组合成一个通量,保留原始通量的顺序。
例子:
S:学生
S':申请后的学生myLogic
发射通量: s1 -> s2 -> s3 -> s4
第一个分裂通量: s1' => myLogic
第二个分裂通量:s2' -> s3' -> s4' => myLogic
组合通量: s1' -> s2' -> s3' -> s4'
您无需创建两个单独的Flux
对象然后合并它们,只需将原始对象Flux
与Flux<Boolean>
仅位于true
第一个元素上的另一个对象压缩即可。
然后,您可以在正常调用中根据需要进行有条件的处理,map()
而无需稍后合并单独的发布者:
Flux<String> values = Flux.just("A", "B", "C", "D", "E", "F", "G");
Flux.zip(Flux.concat(Flux.just(true), Flux.just(false).repeat()), values)
.map(x -> x.getT1() ? "_"+x.getT2().toUpperCase()+"_" : x.getT2().toLowerCase())
.subscribe(System.out::print); // prints "_A_bcdefg"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1486 次 |
最近记录: |