这是我所面临问题的一个简化例子。
Flux<String> fluxString = Flux.just("A","B","C");
Mono<String> monoString = Mono.just("Original");
预期结果是这样的
Mono<String> expectedresult = "Original A B C";
方法1->我可以等待通量的所有元素被接收,然后将它们与单声道组合
或
方法2->将通量的每个元素组合到mono,并在接收到下一个通量元素之前用新值更新原始mono。以上哪种方法对我有效?
我用下面的代码尝试了方法2
Flux<String> fluxfrommono = monoString.flatMapMany(a-> Mono.just(a).repeat());
Flux.zip(fluxfrommono ,fluxString ,(a,b)-> a+b)
但这会产生“original a”、“original b”、“original c”->原始字符串不会用每个flux元素的新值进行更新。
如何做到这一点?
2条答案
按热度按时间w80xi6nr1#
你需要
concatWith
这个monoString
与fluxString
,和reduce
它是一个Mono<String>
.vqlkdk9b2#
为我写的代码-