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