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.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author

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.