如何从多个通量< mypojo>中获取通量< mypojo>?

dtcbnfnu  于 2021-06-30  发布在  Java
关注(0)|答案(1)|浏览(315)

如何获得 Flux<MyPojo> 从多个 Flux<MyPojo> ?
在一个非常简单的例子中:

public Flux<MyPojo> question() {
    Flux<MyPojo> flux1 = getFluxMyPojoViaAPI();
    Flux<MyPojo> flux2 = repository.findAll();
    Flux<MyPojo> flux3 = getFluxMyPojoViaAnotherAPI();
    Flux<MyPojo> flux4 = etc();

    Flux<MyPojo> everythingTogetherAsFluxMyPojo = //how to achieve this please?
    return everythingTogetherAsFluxMyPojo;

我在想怎么弄到 Flux<MyPojo> 从所有先前计算的 Flux<MyPojo> 尝试了zip和那些相关的api,最终得到了大量的元组。
有没有一个更简单更好的方法来获得 Flux<MyPojo> 从倍数 Flux<MyPojo> 拜托?

du7egjpx

du7egjpx1#

你可以用 Flux.merge(Publisher<? extends I>... sources) :

Flux<MyPojo> combined = Flux.merge(flux1, flux2, flux3, flux4)

或者 Flux.concat(Publisher<? extends T>... sources) :

Flux<MyPojo> combined = Flux.concat(flux1, flux2, flux3, flux4)

两者之间的重要区别 merge 以及 concat 是吗 merge 将一起订阅所有流量,并在任何流量到达时发布项目,而 concat 将首先订阅第一个流量并发布其项目,直到它完成,然后订阅下一个流量,等等。

相关问题