Zip将给定的monos聚合到一个新的Mono中,当所有给定的monos都生成了一个项时,该Mono将被实现,但我想知道,我将并行调用多个API,但没有任何依赖关系,我想逐个公开当时可用的响应。
所以请帮忙解决这个问题。我已经使用了Mono.zip,但一直在等待所有响应的到来。
您只需要Flux#merge
。对出版商的订阅是热切的(所有出版商都一起订阅(:
Flux.merge(Mono.just("response1").delayElement(Duration.ofSeconds(3)),
Mono.just("response2").delayElement(Duration.ofSeconds(1)),
Mono.just("response3").delayElement(Duration.ofSeconds(2)))
.doOnNext(System.out::println)
输出为:
response2
response3
response1