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.