将Map <String,CompletableFuture <Response >>转换为CompletableFuture <Map <String,Response >>

时间:2019-06-18 16:11:42

标签: java java-stream completable-future

我有:Map<String, CompletableFuture<Response>>
我期望:CompletableFuture<Map<String, Response>>

我希望每个“内部”将来完成时都完成结果,然后有一个Map将字符串映射到已完成的结果。 我正在寻找一种完美的方法来实现这一目标,并尝试使用流技术,但目前仍失败。

我看过一种方法,它可以完成类似的工作,但是列表如下:https://github.com/spotify/completable-futures/blob/master/src/main/java/com/spotify/futures/CompletableFutures.java#L49

2 个答案:

答案 0 :(得分:1)

问题中链接到的同一个 CompletableFutures 类现在有了一个 allAsMap() 方法,这要归功于这个 PR:https://github.com/spotify/completable-futures/pull/70

答案 1 :(得分:-1)

无法在每个join上调用CompletableFuture,但是您可以使用CompletableFuture.allOf来安排要在所有期货都完成后执行的操作,因此{{1} }调用将阻塞线程。然后,使用Stream API执行批量操作:

join