问题描述
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,使其返回一个 Pair 或某个复合对象,但有没有更好的方法?
解决方法
serviceA.thenCompose(a -> serviceB(a).thenCompose(b -> serviceC(a,b)));