我们如何在保持所有结果的同时组合 3 个或更多 completablefutures
How can we compose 3 or more completablefutures while maintaining all the results
我有 3 个要链接的服务
CompletableFuture<String> serviceA
CompletableFuture<String> serviceB(String resultFromA)
CompletableFuture<String> serviceC(String resultFromA, String resultFromB)
如果我使用 thenCompose,我似乎无法保持第一个结果
即
serviceA.thenCompose(a -> serviceB(a))
.thenCompose(b -> serviceC(a, b)); // a is lost
如果我使用 CompletableFuture.allOf(),我看不到它允许链接 - 运行 按顺序并传递结果。
我将修改 serviceB,使其 returns 成为 Pair,或一些复合对象,但是有更好的方法吗?
serviceA.thenCompose(a -> serviceB(a).thenCompose(b -> serviceC(a, b)));
我有 3 个要链接的服务
CompletableFuture<String> serviceA
CompletableFuture<String> serviceB(String resultFromA)
CompletableFuture<String> serviceC(String resultFromA, String resultFromB)
如果我使用 thenCompose,我似乎无法保持第一个结果
即
serviceA.thenCompose(a -> serviceB(a))
.thenCompose(b -> serviceC(a, b)); // a is lost
如果我使用 CompletableFuture.allOf(),我看不到它允许链接 - 运行 按顺序并传递结果。
我将修改 serviceB,使其 returns 成为 Pair,或一些复合对象,但是有更好的方法吗?
serviceA.thenCompose(a -> serviceB(a).thenCompose(b -> serviceC(a, b)));