列表<ComputableFuture<T>> 到 CompletableFuture<List<T>>

List<ComputableFuture<T>> to ComputableFuture<List<T>>

给定一个 futures 集合,例如 list>,我们如何将它们合并到一个 futures map 中,而不会在 Kotlin 中阻塞。 我无法使用 get 或 join..

澄清我想做什么: T 的可完成未来清单 具有 T 列表的可计算未来。

我想你可以使用这样的东西:

val futures: List<CompletableFuture<Int>> = (1..10).map { CompletableFuture.supplyAsync { it } }
val results: CompletableFuture<List<Int>> = CompletableFuture.allOf(*futures.toTypedArray())
    .thenApply { futures.map { it.join() } }