Scope::spawn
(PHP 8.6+, True Async 1.0)
public function spawn(\Closure $callable, mixed ...$params): Coroutine
Запускает новую корутину в рамках данного scope. Корутина будет привязана к scope и будет управляться его жизненным циклом: при отмене или закрытии scope все его корутины также будут затронуты.
Параметры
callable — замыкание, которое будет выполнено как корутина.
params — аргументы, передаваемые в замыкание.
Возвращаемое значение
Coroutine — объект запущенной корутины.
Примеры
Пример #1 Базовое использование
<?php
use Async\Scope;
$scope = new Scope();
$coroutine = $scope->spawn(function() {
echo "Привет из корутины!\n";
return 42;
});
echo $coroutine->getResult(); // 42
Пример #2 Передача параметров
<?php
use Async\Scope;
$scope = new Scope();
$coroutine = $scope->spawn(function(string $url, int $timeout) {
echo "Загрузка $url с таймаутом {$timeout}мс\n";
// ... выполнение запроса
}, 'https://example.com', 5000);
$scope->awaitCompletion();
См. также
- spawn() — Глобальная функция запуска корутины
- Scope::cancel — Отмена всех корутин scope
- Scope::awaitCompletion — Ожидание завершения корутин