Java 8有一个函数< code > CompletableFuture . allof(CompletableFuture
但是,我几乎总是不处理一系列可完成的未来
,而是有一个列表
如果有一种巧妙的方法来获得CompletableFuture,那真的很好
不幸的是,据我所知,“可完成未来”不支持集合。
你可以做这样的事情来使代码更简洁一些,但它本质上做同样的事情。
public <T> CompletableFuture<List<T>> allOf(List<CompletableFuture<T>> futuresList) {
CompletableFuture<Void> allFuturesResult =
CompletableFuture.allOf(futuresList.toArray(new CompletableFuture[futuresList.size()]));
return allFuturesResult.thenApply(v ->
futuresList.stream().
map(future -> future.join()).
collect(Collectors.<T>toList())
);
}
发现这非常翔实:http://www.nurkiewicz.com/2013/05/java-8-completablefuture-in-action.html