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