¿Cuál es la diferencia entre Promise.all y Promise.any?
sobes.tech AI
Respuesta de la IA
Promise.all espera a que se completen todas las promesas en un objeto iterable. Si todas las promesas se cumplen con éxito, devuelve una promesa que se resuelve con un array de resultados en el mismo orden que las promesas de entrada. Si al menos una promesa se rechaza, devuelve una promesa que se rechaza con el error de la primera promesa rechazada.
Promise.any espera a que se complete cualquiera de las promesas en un objeto iterable. Tan pronto como alguna de las promesas se cumple con éxito, devuelve una promesa que se resuelve con el valor de esa promesa. Si todas las promesas son rechazadas, devuelve una promesa que se rechaza con un AggregateError, que contiene un array de errores de todas las promesas rechazadas.
Comparación:
| Criterio | Promise.all | Promise.any |
|---|---|---|
| Condición de éxito | Todas las promesas se cumplen con éxito | Cualquier promesa se cumple con éxito |
| Condición de error | Alguna promesa se rechaza | Todas las promesas se rechazan |
| Resultado de éxito | Array de resultados (en el mismo orden que las promesas de entrada) | Valor de la primera promesa que se cumple |
| Resultado de error | Error de la primera promesa rechazada | AggregateError con un array de errores de todas las promesas rechazadas |
| Uso | Dependencia de todas las operaciones asíncronas | Dependencia de cualquiera de las operaciones asíncronas |