получить доступ к предыдущему входному параметру в цепочках CompletableFuture - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть вызов CompletableFuture,

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

проблема в том, что для метода C требуются параметры, созданные в предыдущем вызове, но параметр выходит за рамки, как я могу получить доступ к результату A?

1 Ответ

0 голосов
/ 01 ноября 2018

Вы можете сделать это так,

CompletableFuture cfA = CompletableFuture.runAsync(() -> methodA(paramA));
CompletableFuture cfB = cfA.thenApply(resultA -> methodB(paramA, resultA));
cfA.thenCombine(cfB, (resultA, resultB) -> methodC(resultA, resultB));
...