ComposantsFuture::completed

Future::completed ​

(PHP 8.6+, True Async 1.0)

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

Crée un Future déjà complété avec la valeur spécifiée. C'est une méthode de fabrique qui retourne un Future contenant immédiatement un résultat. Utile pour retourner une valeur déjà connue depuis des fonctions qui retournent un Future.

Paramètres ​

value — la valeur avec laquelle le Future sera complété. Par défaut null.

Valeur de retour ​

Future — un Future complété avec la valeur spécifiée.

Exemples ​

Exemple #1 Création d'un Future avec une valeur prête ​

php
<?php

use Async\Future;
use Async\FutureState;

$future = Future::completed(42);

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

Exemple #2 Utilisation dans une fonction qui retourne un Future ​

php
<?php

use Async\Future;
use Async\FutureState;

function fetchData(string $key): Future {
    // If data is in cache, return immediately
    $cached = getFromCache($key);
    if ($cached !== null) {
        return Future::completed($cached);
    }

    // Otherwise start an async operation
    $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 "Result: $result\n";

Voir aussi ​