TaskSet::awaitCompletion
(PHP 8.6+, True Async 1.0)
php
public TaskSet::awaitCompletion(): voidSuspendiert die aktuelle Coroutine, bis alle Tasks im Set abgeschlossen sind.
Das Set muss vor dem Aufruf dieser Methode versiegelt sein.
Im Gegensatz zu joinAll() wirft diese Methode keine Exceptions bei Task-Fehlern und gibt keine Ergebnisse zurück.
Fehler
Wirft Async\AsyncException, wenn das Set nicht versiegelt ist.
Beispiele
Beispiel #1 Auf Abschluss warten
php
<?php
use Async\TaskSet;
spawn(function() {
$set = new TaskSet();
$set->spawn(fn() => processFile("a.txt"));
$set->spawn(fn() => processFile("b.txt"));
$set->spawn(fn() => throw new \RuntimeException("error"));
$set->seal();
$set->awaitCompletion(); // Wirft nicht, auch wenn Tasks fehlgeschlagen sind
echo "Alle Tasks abgeschlossen\n";
});Siehe auch
- TaskSet::joinAll — Warten und Ergebnisse abrufen
- TaskSet::finally — Abschluss-Handler