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