Future::completed
(PHP 8.6+, True Async 1.0)
php
public static function completed(mixed $value = null): FutureСоздаёт уже завершённый Future с указанным значением. Это фабричный метод, который возвращает Future, немедленно содержащий результат. Полезен для возврата уже известного значения из функций, возвращающих Future.
Параметры
value — значение, с которым Future будет завершён. По умолчанию null.
Возвращаемое значение
Future — завершённый Future с указанным значением.
Примеры
Пример #1 Создание Future с готовым значением
php
<?php
use Async\Future;
use Async\FutureState;
$future = Future::completed(42);
var_dump($future->isCompleted()); // bool(true)
var_dump($future->await()); // int(42)Пример #2 Использование в функции, возвращающей Future
php
<?php
use Async\Future;
use Async\FutureState;
function fetchData(string $key): Future {
// Если данные есть в кэше, возвращаем сразу
$cached = getFromCache($key);
if ($cached !== null) {
return Future::completed($cached);
}
// Иначе запускаем асинхронную операцию
$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\n";См. также
- Future::failed — Создать Future с ошибкой
- Future::__construct — Создать Future через FutureState
- Future::await — Ожидание результата