Future::await
(PHP 8.6+, True Async 1.0)
public function await(?Completable $cancellation = null): mixed
Espera la completitud del Future y devuelve su resultado. Bloquea la corrutina actual hasta que el Future se complete. Si el Future se completó con un error, el método lanza esa excepción. Se puede pasar un Completable para cancelar la espera por tiempo de espera o condición externa.
Parámetros
cancellation — un objeto de cancelación de espera. Si se proporciona y se activa antes de que el Future se complete, se lanzará una CancelledException. Por defecto es null.
Valor de retorno
mixed — el resultado del Future.
Errores
Lanza una excepción si el Future se completó con un error o fue cancelado.
Ejemplos
Ejemplo #1 Espera básica del resultado
<?php
use Async\Future;
$future = \Async\async(function() {
\Async\delay(100);
return 42;
});
$result = $future->await();
echo "Resultado: $result\n"; // Resultado: 42
Ejemplo #2 Manejo de errores durante la espera
<?php
use Async\Future;
$future = \Async\async(function() {
throw new \RuntimeException("Algo salió mal");
});
try {
$result = $future->await();
} catch (\RuntimeException $e) {
echo "Error: " . $e->getMessage() . "\n";
// Error: Algo salió mal
}
Ver también
- Future::isCompleted — Verificar si el Future está completado
- Future::cancel — Cancelar el Future
- Future::map — Transformar el resultado