await_any_or_fail

(PHP 8.6+, True Async 1.0)

await_any_or_fail() — Attend la première tâche terminée. Si la première tâche terminée a levé une exception, celle-ci est propagée.

Description

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

Paramètres

triggers Une collection itérable d’objets Async\Completable.

cancellation Un Awaitable optionnel pour annuler l’attente.

Valeurs de retour

Le résultat de la première tâche terminée.

Erreurs/Exceptions

Si la première tâche terminée a levé une exception, celle-ci sera propagée.

Exemples

Exemple #1 Course de requêtes

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

// Le premier à répondre gagne
$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 "Received response from the fastest mirror\n";
?>

Notes

Note : Le paramètre triggers accepte tout iterable, y compris les implémentations d’Iterator. Voir l’exemple avec Iterator.

Voir aussi