我已经创建了一个String Monos List<Mono<String>> myList的列表。现在我需要将它们连接在一个大字符串中。
当我初始化StringBuilder并异步更新它时,可能会返回空行。
//method body....
StringBuilder builder = new StringBuilder();
myList.forEach {
mono ->
mono.map{ str -> builder.append(str)}
}
return builder.toString() //<- is ""如何让构建器等待monos?
发布于 2019-06-20 17:14:34
最好的方法是将Monos列表转换为Flux,然后将flux减少为一个包含所有子字符串的字符串。然后你有了Mono,你仍然可以以异步的方式使用。(如果你想保持项目反应器的异步范型,你应该总是在Mono/Flux上工作)
示例:
List<Mono<String>> listOfMonosWithString = Arrays.asList(Mono.just("a"), Mono.just("b"), Mono.just("c"));
Flux<String> mergedMonos = Flux.fromIterable(listOfMonosWithString)
.flatMapSequential(Function.identity());
mergedMonos
.reduce(String::concat)
.doOnNext(System.out::println)
.subscribe();https://stackoverflow.com/questions/56682485
复制相似问题