await_any_or_fail
(PHP 8.6+, True Async 1.0)
await_any_or_fail() — Attende il primo task completato. Se il primo task completato ha lanciato un’eccezione, questa viene propagata.
Descrizione
await_any_or_fail(
iterable $triggers,
?Async\Awaitable $cancellation = null
): mixed
Parametri
triggers
Una collezione iterabile di oggetti Async\Completable.
cancellation
Un Awaitable opzionale per annullare l’attesa.
Valori di ritorno
Il risultato del primo task completato.
Errori/Eccezioni
Se il primo task completato ha lanciato un’eccezione, questa verrà propagata.
Esempi
Esempio #1 Gara di richieste
<?php
use function Async\spawn;
use function Async\await_any_or_fail;
// Vince chi risponde per primo
$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 "Risposta ricevuta dal mirror più veloce\n";
?>
Note
Nota: Il parametro
triggersaccetta qualsiasiiterable, incluse le implementazioni diIterator. Vedi l’esempio con Iterator.
Vedi anche
- await_first_success() — primo successo, ignorando gli errori
- await_all_or_fail() — tutti i task