TaskSet::awaitCompletion

(PHP 8.6+, True Async 1.0)

public TaskSet::awaitCompletion(): void

Приостанавливает текущую корутину до завершения всех задач в наборе.

Набор должен быть запечатан перед вызовом этого метода.

В отличие от joinAll(), этот метод не бросает исключений при ошибках задач и не возвращает результаты.

Ошибки

Бросает Async\AsyncException, если набор не запечатан.

Примеры

Пример #1 Ожидание завершения

<?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("ошибка"));

    $set->seal();
    $set->awaitCompletion(); // Не бросает исключение, даже если задачи упали

    echo "Все задачи завершены\n";
});

См. также