await_any_or_fail

(PHP 8.6+, True Async 1.0)

await_any_or_fail() — Wartet auf die erste abgeschlossene Aufgabe. Wenn die erste abgeschlossene Aufgabe eine Ausnahme geworfen hat, wird diese weitergegeben.

Beschreibung

await_any_or_fail(
    iterable $triggers,
    ?Async\Awaitable $cancellation = null
): mixed

Parameter

triggers Eine iterierbare Sammlung von Async\Completable-Objekten.

cancellation Ein optionales Awaitable zum Abbrechen des Wartens.

Rueckgabewerte

Das Ergebnis der ersten abgeschlossenen Aufgabe.

Fehler/Ausnahmen

Wenn die erste abgeschlossene Aufgabe eine Ausnahme geworfen hat, wird diese weitergegeben.

Beispiele

Beispiel #1 Anfrage-Wettrennen

<?php
use function Async\spawn;
use function Async\await_any_or_fail;

// Wer zuerst antwortet, gewinnt
$result = await_any_or_fail([
    spawn(file_get_contents(...), 'https://mirror1.example.com/data'),
    spawn(file_get_contents(...), 'https://mirror2.example.com/data'),
    spawn(file_get_contents(...), 'https://mirror3.example.com/data'),
]);

echo "Antwort vom schnellsten Mirror empfangen\n";
?>

Hinweise

Hinweis: Der Parameter triggers akzeptiert jedes iterable, einschliesslich Iterator-Implementierungen. Siehe das Iterator-Beispiel.

Siehe auch