如何将 Mono<List<String>> 转换为 Flux<String>

新手上路,请多包涵

我正在将用 RxJava 1.x 编写的小项目转换为 Reactor 3.x。一切都很好,只是我找不到如何用合适的对应物替换 flatMap(Observable::from) 。我有 Mono<List<String>> 我需要将它转换为 Flux<String>

原文由 Mavo 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.2k
2 个回答

在 Reactor 3 中, from 运算符已专门化为几个变体,具体取决于原始来源(数组、可迭代等…)。

在您的情况下使用 yourMono.flatMapMany(Flux::fromIterable)

原文由 Simon Baslé 发布,翻译遵循 CC BY-SA 3.0 许可协议

我认为可能 Flux::mergeSequential 静态工厂更适合这里:

  Iterable<Mono<String>> monos = ...
 Flux<String> f = Flux.mergeSequential(monos);

这种合并(顺序)将保持给定源可迭代内部的顺序,并且还将热切地从所有参与的源订阅/请求(因此在计算单声道结果时预期会有更多的并行化)。

原文由 Michail Alexakis 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题