Ich habe eine Frage bezüglich CompletableFuture in Java. Ich warte auf den Abschluss einer CompletableFuture, und abhängig vom empfangenen Ergebnis möchte ich entweder eine neue Aufgabe aufrufen und darauf warten, dass CompleableFuture abgeschlossen wird oder etwas anderes tut. Ich bin nicht glücklich mit meiner Lösung, da es so viele Rückrufe gibt und es ist anders zu lesen. Könnten Sie mir helfen, meinen Code zu verbessern?Java CompleableFuture: Callback-Hölle vermeiden
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");
}
});