Future::completed
(PHP 8.6+, True Async 1.0)
php
public static function completed(mixed $value = null): FutureErstellt ein bereits abgeschlossenes Future mit dem angegebenen Wert. Dies ist eine Factory-Methode, die ein Future zurückgibt, das sofort ein Ergebnis enthält. Nützlich, um einen bereits bekannten Wert aus Funktionen zurückzugeben, die ein Future zurückgeben.
Parameter
value — der Wert, mit dem das Future abgeschlossen wird. Standardwert ist null.
Rückgabewert
Future — ein abgeschlossenes Future mit dem angegebenen Wert.
Beispiele
Beispiel #1 Ein Future mit einem fertigen Wert erstellen
php
<?php
use Async\Future;
use Async\FutureState;
$future = Future::completed(42);
var_dump($future->isCompleted()); // bool(true)
var_dump($future->await()); // int(42)Beispiel #2 Verwendung in einer Funktion, die ein Future zurückgibt
php
<?php
use Async\Future;
use Async\FutureState;
function fetchData(string $key): Future {
// Wenn Daten im Cache sind, sofort zurückgeben
$cached = getFromCache($key);
if ($cached !== null) {
return Future::completed($cached);
}
// Andernfalls eine asynchrone Operation starten
$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 "Ergebnis: $result\n";Siehe auch
- Future::failed — Ein Future mit einem Fehler erstellen
- Future::__construct — Ein Future über FutureState erstellen
- Future::await — Das Ergebnis abwarten