Java8 CompletableFuture recoveryWith equivalente? por ejemplo, excepcionalmente, pero devuelve CompletableFuture <U>
No veo una forma obvia de manejar una excepción con un resultado asincrónico. Por ejemplo, si quiero volver a intentar una operación asincrónica. Esperaría algo como esto, sin embargo, handleAsync no hace lo que crees que hace: ejecuta las devoluciones de llamada en otro hilo de forma asincrónica. Devolver un CompletionStage aquí no es correcto. Pregunta de peligro del día:thenApply
Es parathenCompose
comoexceptionally
es a que?
CompletionStage<String> cf = askPong("cause error").handleAsync((x, t) -> {
if (t != null) {
return askPong("Ping");
} else {
return x;
}
});
Donde askPong le pregunta a un actor:
public CompletionStage<String> askPong(String message){
Future sFuture = ask(actorRef, message, 1000);
final CompletionStage<String> cs = toJava(sFuture);
return cs;
}