如何从多个Flux<MyPojo>中得到一个Flux<MyPojo>?
How to get a Flux<MyPojo> from multiple Flux<MyPojo>?
如何从多个 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 of Tuples。
请问有没有更简单更好的方法来从倍数 Flux<MyPojo>
中获得 Flux<MyPojo>
?
您可以使用 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
会同时订阅所有 fluxes,并在项目到达任何 flux 时发布它们,而 concat
会首先订阅第一个 flux 并发布它的项目直到它完成,然后订阅下一个 flux,等等
如何从多个 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 of Tuples。
请问有没有更简单更好的方法来从倍数 Flux<MyPojo>
中获得 Flux<MyPojo>
?
您可以使用 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
会同时订阅所有 fluxes,并在项目到达任何 flux 时发布它们,而 concat
会首先订阅第一个 flux 并发布它的项目直到它完成,然后订阅下一个 flux,等等