¿Qué hace Promise.all([p1, p2, p3]) cuando p2 rechaza?
Opciones
- Espera a todas y devuelve resultados y errores
- Rechaza cuando p2 rechaza; las demás siguen ejecutándose (Opción correcta)
- Ignora p2 y devuelve los otros dos resultados
- Reintenta p2 hasta que funcione
Respuesta
Rechaza en cuanto p2 rechaza (fail-fast); las demás promesas siguen ejecutándose
Por qué
Promise.all ejecuta las promesas en paralelo y te da todos los resultados, pero si CUALQUIERA falla, la promesa combinada falla de inmediato con ese error. Las demás no se cancelan; sus resultados simplemente se ignoran.
Usa Promise.allSettled para obtener todos los resultados y errores, Promise.race para la primera en terminar, Promise.any para el primer éxito.
Recuerda
Promise.all falla rápido; allSettled espera a todo.