KomponentenTaskSet::awaitCompletion

TaskSet::awaitCompletion ​

(PHP 8.6+, True Async 1.0)

php
public TaskSet::awaitCompletion(): void

Suspendiert die aktuelle Coroutine, bis alle Tasks im Set abgeschlossen sind.

Das Set muss vor dem Aufruf dieser Methode geschlossen 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 geschlossen 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->close();
    $set->awaitCompletion(Async\timeout(5000)); // Wirft nicht, auch wenn Tasks fehlgeschlagen sind

    echo "Alle Tasks abgeschlossen\n";
});

Siehe auch ​