Scope::spawn

(PHP 8.6+, True Async 1.0)

public function spawn(\Closure $callable, mixed ...$params): Coroutine

Lance une nouvelle coroutine au sein du scope donné. La coroutine sera liée au scope et gérée par son cycle de vie : lorsque le scope est annulé ou fermé, toutes ses coroutines seront également affectées.

Paramètres

callable — la closure à exécuter en tant que coroutine.

params — les arguments à passer à la closure.

Valeur de retour

Coroutine — l’objet coroutine lancé.

Exemples

Exemple #1 Utilisation basique

<?php

use Async\Scope;

$scope = new Scope();

$coroutine = $scope->spawn(function() {
    echo "Hello from a coroutine!\n";
    return 42;
});

echo $coroutine->getResult(); // 42

Exemple #2 Passage de paramètres

<?php

use Async\Scope;

$scope = new Scope();

$coroutine = $scope->spawn(function(string $url, int $timeout) {
    echo "Fetching $url with timeout {$timeout}ms\n";
    // ... effectuer la requête
}, 'https://example.com', 5000);

$scope->awaitCompletion();

Voir aussi