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
triggersaccepte toutiterable, y compris les implémentations d’Iterator. Voir l’exemple avec Iterator.
Voir aussi
- await_first_success() — premier succès, en ignorant les erreurs
- await_all_or_fail() — toutes les tâches