我的方法得到助焊剂。 我如何遍历Flux? 我想遍历它的对象,并对每个孩子进行操作。
public void write(List<? extends Flux<Child>> childFlux) throws Exception {
childFlux.stream()
.map(children -> children.collectList())
.forEach(child -> run(child); //not compile
}
public void run(Child child) {
//TO DO
}
答案 0 :(得分:2)
这似乎是一种反模式。但是,存在一些基本错误。
map(children -> children.collectList())
将返回Mono<List<Child>>
forEach(child -> run(child);
您忘了一个右括号,应该是forEach(child -> run(child));
。Mono<List<Child>>
而不是Child
您真正需要做的是类似
Flux.concat(childFlux).subscribe(this::run)
连接可迭代的所有元素,这些元素由下游来源发出。
或
Flux.merge(childFlux).subscribe(this::run)
将数组/ vararg中包含的发布者序列中的数据合并到交错的合并序列中。与concat不同,消息源是热切订阅的。