Можно ли объединить произвольно много синхронизированных потоков в один? - PullRequest
0 голосов
/ 05 сентября 2018

Мне известно о combineLatest() для объединения последних значений в двух-шести экземплярах Flux ( Объединение издателей в проекте ). Однако предположим, что у меня есть List<Flux<Integer>> listOfFlux. Можно ли как-то объединить их все в одно, например, listOfFlux.combineAllLatest( (a,b) -> a + b) )

1 Ответ

0 голосов
/ 05 сентября 2018

Да, для этого есть вариант оператора:

Flux.combineLatest(Iterable<? extends Publisher<? extends T>> sources,
                                          Function<Object[],V> combinator)

Вы можете использовать его как:

List<Flux<Integer>> listOfFlux = //...
Flux<Integer> result = Flux.combineLatest(listOfFlux, arr -> {
    //...
});
...