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)
})
}
Promise.all([p1(), p2()])
.then((mensaje) => console.log(mensaje))
.catch(err => console.log(err))
A. ["p1", "p2"] (después de 8s)
B. ["p1", "p2"] (después de 5s)
C. SyntaxisError
D. "p1", "p2" (después de 5s)
Respuesta en el primer comentario.
Top comments (3)
Respuesta:
B.
["p1", "p2"](después de 5s)Promise.alles una manera optima y recomendable de administrar conjuntos de promesas.Promise.allrecibe un arreglo de promesas como parámetro y las va evaluando una a una en el orden en que se las pasamos. Coloquialmente podríamos decir quePromise.alles un "todo o nada", ya que solo regresará todas las promesas satisfechas.Otra característica es que las promesas se evalúan de manera paralela, por ello no esperamos a que
p1se resuelva para poder comenzar a evaluarp2, sino que ambas promesas se empiezan a evaluar al mismo tiempo, por ello los delays delsetTimeoutno se suman, basta con considerar el delay mas alto, en este caso el de 5s.Actualice hace poco mis bases en JS y la verdad es que los ejercicios estos me ayudan bastante a asentar conceptos +1.
Muchas gracias por ese comentario, escribir los post y explicarlos con un lenguaje no tan técnico me ayuda también a interiorizar ciertos conceptos, me alegra saber que te ayuda. Saludos.