如何链接 Flux 和 Mono 发布者?
我想将它们链接起来并发送响应。基本上都是异步执行的。
在这里,我使用 zip for Mono & Flux 来执行所有 Mono 发布者和 Flux 发布者。
List<Mono<?>> monoPubs = new ArrayList<>();
Mono.zip(monoPubs, mred -> result);
List<Flux<?>> fluxPubs = new ArrayList<>();
Flux.zip(fluxPubs, fres -> result);
答案 0 :(得分:2)
如果您不需要个别发布者的结果,那么您可以使用 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);