У меня есть вопрос относительно CompletableFuture в Java. Я жду завершения CompletableFuture и в зависимости от полученного результата, я хочу либо вызвать новую задачу, либо дождаться завершения CompletingFuture или сделать что-то другое. Я не доволен своим решением, так как так много обратных вызовов, и читать их не так. Не могли бы вы помочь мне улучшить мой код?Java CompletableFuture: Избегайте обратного вызова ад
final CompletableFuture<String> future = new CompletableFuture<>();
final ActorRef processCheckActor = actorSystem.actorOf(
springExtension.props("ProcessCheckActor"), "processCheckActor-" + new Random().nextInt());
final CompletableFuture<Object> checkResponse =
PatternsCS.ask(processCheckActor, new ProcessToCheckMessage(processId), TIMEOUT)
.toCompletableFuture();
checkResponse.thenAccept(obj -> {
final ProcessCheckResponseMessage msg = (ProcessCheckResponseMessage) obj;
if (msg.isCorrect()) {
final CompletableFuture<Object> response =
PatternsCS.ask(processSupervisorActor, new ProcessStartMessage(processId), TIMEOUT)
.toCompletableFuture();
response.thenAccept(obj2 -> {
future.complete("yes");
});
} else {
future.complete("no");
}
});