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
- spawn() — Globale Funktion zum Starten von Koroutinen
- Scope::cancel — Alle Scope-Koroutinen abbrechen
- Scope::awaitCompletion — Auf Abschluss der Koroutinen warten