Scope::spawn
(PHP 8.6+, True Async 1.0)
public function spawn(\Closure $callable, mixed ...$params): Coroutine
Avvia una nuova coroutine all’interno dello scope specificato. La coroutine sara’ legata allo scope e gestita dal suo ciclo di vita: quando lo scope viene cancellato o chiuso, anche tutte le sue coroutine saranno interessate.
Parametri
callable — la closure da eseguire come coroutine.
params — argomenti da passare alla closure.
Valore di ritorno
Coroutine — l’oggetto coroutine avviato.
Esempi
Esempio #1 Utilizzo base
<?php
use Async\Scope;
$scope = new Scope();
$coroutine = $scope->spawn(function() {
echo "Ciao da una coroutine!\n";
return 42;
});
echo $coroutine->getResult(); // 42
Esempio #2 Passaggio di parametri
<?php
use Async\Scope;
$scope = new Scope();
$coroutine = $scope->spawn(function(string $url, int $timeout) {
echo "Recupero $url con timeout {$timeout}ms\n";
// ... esegui la richiesta
}, 'https://example.com', 5000);
$scope->awaitCompletion();
Vedi anche
- spawn() — Funzione globale per avviare coroutine
- Scope::cancel — Cancella tutte le coroutine dello scope
- Scope::awaitCompletion — Attende il completamento delle coroutine