Tenía una pregunta sobre cómo promise.all maneja el rechazo.
Digamos que tenemos el siguiente comando
await Promise.all([ server1.logMessage(), server2.logMessage() ])Y digamos que el servidor 1 tarda 2 segundos en iniciar sesión y el servidor 2 tarda 5 segundos en iniciar sesión.
¿Y qué sucede si server1.logMessage() devuelve un error en 1 segundo? ¿Podemos estar seguros de que server2 al menos registrará el mensaje aunque se rechace la promesa resultante de promise.all ?
¿O necesito usar Promise.allSettled ?
Sí, tus promesas parecen ser independientes. Su código es equivalente a esto:
const prom1 = server1.logMessage(); const prom2 = server2.logMessage(); await Promise.all([prom1, prom2]) Todo lo que Promise.all hace es ajustar el flujo del programa en ese bloque ; no afecta lo que logMessage puede o no hacer. Si un logMessage registra un mensaje, o si ocurre un error, eso no tendrá ningún efecto en lo que hace el otro logMessage .