Future::__construct
(PHP 8.6+, True Async 1.0)
public function __construct(FutureState $state)
Создаёт новый Future, привязанный к объекту FutureState. FutureState управляет состоянием Future и позволяет завершить его извне с результатом или ошибкой.
Параметры
state — объект FutureState, управляющий состоянием данного Future.
Примеры
Пример #1 Создание Future через FutureState
<?php
use Async\Future;
use Async\FutureState;
$state = new FutureState();
$future = new Future($state);
// Завершаем Future из другой корутины
\Async\async(function() use ($state) {
$result = performComputation();
$state->complete($result);
});
// Ожидаем результат
$value = $future->await();
echo "Получено: $value\n";
Пример #2 Создание Future с отложенным результатом
<?php
use Async\Future;
use Async\FutureState;
function createDeferredFuture(): array {
$state = new FutureState();
$future = new Future($state);
return [$future, $state];
}
[$future, $state] = createDeferredFuture();
// Одна корутина ожидает результат
\Async\async(function() use ($future) {
$result = $future->await();
echo "Результат: $result\n";
});
// Другая корутина предоставляет результат
\Async\async(function() use ($state) {
\Async\delay(100);
$state->complete("Готово!");
});
См. также
- Future::completed — Создать уже завершённый Future
- Future::failed — Создать Future с ошибкой