是否可以将任意多个定时通量组合为一个?

时间:2018-09-05 10:02:50

标签: reactive-programming project-reactor

我知道combineLatest()将最后的值合并到两个到六个Flux实例(Combining Publishers in Project )中。但是,假设我有一个List<Flux<Integer>> listOfFlux。是否可以将它们全部合并为一个,例如listOfFlux.combineAllLatest( (a,b) -> a + b) )

1 个答案:

答案 0 :(得分:2)

是的,有一个用于此目的的运算符变体:

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

您可以像这样使用它:

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