ComponentesFuture::await

Future::await ​

(PHP 8.6+, True Async 1.0)

php
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 AsyncCancellation. 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
<?php

use Async\Future;
use Async\FutureState;

$state  = new FutureState();
$future = new Future($state);

\Async\spawn(function() use ($state) {
    \Async\delay(100);
    $state->complete(42);
});

$result = $future->await();
echo "Resultado: $result\n"; // Resultado: 42

Ejemplo #2 Manejo de errores durante la espera ​

php
<?php

use Async\Future;
use Async\FutureState;

$state  = new FutureState();
$future = new Future($state);

\Async\spawn(function() use ($state) {
    $state->error(new \RuntimeException("Algo salió mal"));
});

try {
    $result = $future->await();
} catch (\RuntimeException $e) {
    echo "Error: " . $e->getMessage() . "\n";
    // Error: Algo salió mal
}

Ver también ​