await_any_or_fail
(PHP 8.6+, True Async 1.0)
await_any_or_fail() — Espera a que se complete la primera tarea. Si la primera tarea completada lanzó una excepción, esta se propaga.
Descripción
await_any_or_fail(
iterable $triggers,
?Async\Awaitable $cancellation = null
): mixed
Parámetros
triggers
Una colección iterable de objetos Async\Completable.
cancellation
Un Awaitable opcional para cancelar la espera.
Valores de retorno
El resultado de la primera tarea completada.
Errores/Excepciones
Si la primera tarea completada lanzó una excepción, esta será propagada.
Ejemplos
Ejemplo #1 Carrera de solicitudes
<?php
use function Async\spawn;
use function Async\await_any_or_fail;
// Gana el que responda primero
$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 "Respuesta recibida del espejo más rápido\n";
?>
Notas
Nota: El parámetro
triggersacepta cualquieriterable, incluyendo implementaciones deIterator. Consulte el ejemplo con Iterator.
Ver también
- await_first_success() — primer éxito, ignorando errores
- await_all_or_fail() — todas las tareas