【发布时间】:2022-01-11 06:11:27
【问题描述】:
我是响应式编程领域的新手。我目前正在使用 Mutiny 库在 Java 反应式应用程序中工作。
我需要开发一个循环,等待上一次迭代完成才能开始下一次迭代。例如:
List<Uni<T>> uniList = new ArrayList<>();
for (T item : items) { //items is an already fulfilled collection
uniList.add(this.doSomethingAndReturnInUni(item));
}
return Uni.combine().all().unis(uniList).combinedWith(unisToCombine -> {
List<T> list = new ArrayList<>();
unisToCombine.forEach(x ->list.add(x));
return list;
});
示例中的 for 循环 每次迭代都会生成一个线程。我想知道如何订购对方法 doSomethingAndReturnInUni() 的第 i 次调用等待 (i-1) 调用触发事件,即按顺序进行 for 循环。是否可以通过这种方式订阅这些事件?
【问题讨论】:
-
我在 Vertx 中使用 Future 实现了类似的功能。为此我使用了递归,我将项目列表转换为迭代器。我将该迭代器传递给函数,并且每次它执行 iterator.next()。 Future 完成后,我检查迭代器是否有项目,我将再次运行。
-
这些单词拼写错误,我不相信最接近的单词是在标题
secuentially,在正文iteation。请检查。
标签: reactive-programming vert.x quarkus mutiny