DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js💊| #122: Explica este código JavaScript

Explica este código JavaScript

Dificultad: Avanzado

const p1 = () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve("p1") },3000) }) } const p2 = () => { return new Promise((resolve, reject) => { setTimeout(() => { resolve("p2") }, 5000) }) } const p3 = () => { return new Promise((resolve, reject) => { setTimeout(() => { reject(new Error("Error en p3")) }, 2000) }) } Promise.all([p1(), p2(), p3()]) .then((mensaje) => console.log(mensaje)) .catch(err => console.log(err)) 
Enter fullscreen mode Exit fullscreen mode

A. ["p1", "p2", "Error: Error en p3"] (después de 10s)
B. ["p1", "p2"] (después de 8s)
C. Error: Error en p3 (después de 2s)
D. Ninguna de las anteriores

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
C. Error: Error en p3 (después de 2s)

Promise.all apenas encuentra una promesa que se rechace termina su ejecución, siempre devolverá todas las promesas satisfechas o ninguna.

En este caso a los 2s encuentra que la promesa p3 se rechaza entonces automáticamente termina el proceso.