Я хочу выполнить CompletableFuture
один раз другой CompletableFuture
заканчивается, независимо от того, завершился ли первый из них исключительно (.thenCompose()
запускается только при завершении выполнения).Есть ли. ThenCompose() для CompletedFuture, который также выполняется исключительно?
Например:
CompletableFuture.supplyAsync(() -> 1L)
.whenComplete((v, e) -> CompletableFuture.runAsync(() -> {
try {
Thread.sleep(1000);
System.out.println("HERE");
} catch(InterruptedException exc) {
return;
}
}))
.whenComplete((v, e) -> System.out.println("ALL DONE"));
Это печатает
ALL DONE
HERE
и хотел бы, чтобы это было
HERE
ALL DONE
предпочтительно без вложенности второго whenComplete()
внутри первого.
Обратите внимание, что здесь меня не интересует возвращенный результат/исключение.