首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将List<Mono<String>>组合成一个大字符串?

如何将List<Mono<String>>组合成一个大字符串?
EN

Stack Overflow用户
提问于 2019-06-20 16:59:49
回答 1查看 1.6K关注 0票数 1

我已经创建了一个String Monos List<Mono<String>> myList的列表。现在我需要将它们连接在一个大字符串中。

当我初始化StringBuilder并异步更新它时,可能会返回空行。

代码语言:javascript
运行
复制
//method body....

StringBuilder builder = new StringBuilder();

myList.forEach {
    mono ->
    mono.map{ str -> builder.append(str)}
}

return builder.toString() //<- is ""

如何让构建器等待monos?

EN

Stack Overflow用户

回答已采纳

发布于 2019-06-20 17:14:34

最好的方法是将Monos列表转换为Flux,然后将flux减少为一个包含所有子字符串的字符串。然后你有了Mono,你仍然可以以异步的方式使用。(如果你想保持项目反应器的异步范型,你应该总是在Mono/Flux上工作)

示例:

代码语言:javascript
运行
复制
    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();
票数 2
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56682485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档