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))
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)
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.