0

我有一个链式 CompletableFuture 调用,

void handle(ParamA paramA) { 
  CompletableFuture.runAsync(() -> methodA(paramA))
            .thenApply(resultA -> methodB(paramA, resultA))
            .thenApply(resultB -> methodC(resultA, resultB)); 
}

问题是,对于methodC,它需要在上一次调用中产生的参数,但参数超出范围,我怎么能访问resultA?

4

1 回答 1

0

你可以这样做,

CompletableFuture cfA = CompletableFuture.runAsync(() -> methodA(paramA));
CompletableFuture cfB = cfA.thenApply(resultA -> methodB(paramA, resultA));
cfA.thenCombine(cfB, (resultA, resultB) -> methodC(resultA, resultB));
于 2018-11-01T03:18:15.810 回答