ComponentesFuture::completed

Future::completed ​

(PHP 8.6+, True Async 1.0)

php
public static function completed(mixed $value = null): Future

Crea un Future ya completado con el valor especificado. Este es un método de fábrica que devuelve un Future que contiene inmediatamente un resultado. Útil para devolver un valor ya conocido desde funciones que retornan un Future.

Parámetros ​

value — el valor con el que se completará el Future. Por defecto es null.

Valor de retorno ​

Future — un Future completado con el valor especificado.

Ejemplos ​

Ejemplo #1 Crear un Future con un valor listo ​

php
<?php

use Async\Future;
use Async\FutureState;

$future = Future::completed(42);

var_dump($future->isCompleted()); // bool(true)
var_dump($future->await());       // int(42)

Ejemplo #2 Uso en una función que devuelve un Future ​

php
<?php

use Async\Future;
use Async\FutureState;

function fetchData(string $key): Future {
    // Si los datos están en caché, devolver inmediatamente
    $cached = getFromCache($key);
    if ($cached !== null) {
        return Future::completed($cached);
    }

    // De lo contrario, iniciar una operación asíncrona
    $state = new FutureState();

    \Async\spawn(function() use ($state, $key) {
        try {
            $state->complete(loadFromDatabase($key));
        } catch (\Throwable $e) {
            $state->error($e);
        }
    });

    return new Future($state);
}

$result = fetchData('user:1')->await();
echo "Resultado: $result\n";

Ver también ​