Scope::spawn

(PHP 8.6+, True Async 1.0)

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

Startet eine neue Koroutine innerhalb des angegebenen Scopes. Die Koroutine wird an den Scope gebunden und von dessen Lebenszyklus verwaltet: Wenn der Scope abgebrochen oder geschlossen wird, sind auch alle seine Koroutinen betroffen.

Parameter

callable — die Closure, die als Koroutine ausgefuehrt werden soll.

params — Argumente, die an die Closure uebergeben werden.

Rueckgabewert

Coroutine — das gestartete Koroutinen-Objekt.

Beispiele

Beispiel #1 Grundlegende Verwendung

<?php

use Async\Scope;

$scope = new Scope();

$coroutine = $scope->spawn(function() {
    echo "Hallo aus einer Koroutine!\n";
    return 42;
});

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

Beispiel #2 Parameter uebergeben

<?php

use Async\Scope;

$scope = new Scope();

$coroutine = $scope->spawn(function(string $url, int $timeout) {
    echo "Abruf von $url mit Timeout {$timeout}ms\n";
    // ... Anfrage ausfuehren
}, 'https://example.com', 5000);

$scope->awaitCompletion();

Siehe auch