java - 如何等待多个 Flux 和 Mono 发布者同时完成
问题描述
如何链接 Flux 和 Mono Publishers?
我想将它们链接起来并发送响应。基本上,全部异步执行。
在这里,我使用 Mono 和 Flux 的 zip 来执行所有 Mono 发布者和 Flux 发布者。
List<Mono<?>> monoPubs = new ArrayList<>();
Mono.zip(monoPubs, mred -> result);
List<Flux<?>> fluxPubs = new ArrayList<>();
Flux.zip(fluxPubs, fres -> result);
解决方案
如果您不需要各个发布者的结果,则可以使用Mono.when
等待所有发布者完成:
List<Publisher<?>> publishers = new ArrayList<>(monoPubs);
publishers.addAll(fluxPubs);
Mono.when(publishers)
.thenReturn(result);
如果您需要发布者的结果,则可以使用Flux.merge
:
List<Publisher<?>> publishers = new ArrayList<>(monoPubs);
publishers.addAll(fluxPubs);
Flux.merge(publishers);
推荐阅读
- python - pandas,如果行包含通配符文本,则合并重复项
- python - 为什么我不能在最后打印板?(井字游戏蟒)
- .htaccess - Create new .htaccess file to deny
- javascript - 数组问题 - 将值转移到另一个数组
- laravel - 将购物车从客人转移到登录用户?
- google-calendar-api - Google 事件监听器
- ansible - 如何参考字典?Ansible 中的项目
- firebase - Firestore 安全规则嵌套集合组查询
- python - 通过 PYODBC 迭代 SQL 查询并将结果收集到 Pandas DF
- python - 如何使用我的 Python 程序制作 macOS 应用程序?