DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #204: Explica este c贸digo JavaScript

Explica este c贸digo JavaScript

Dificultad: Intermedio

const one = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject("one")
    }, 5000)
  })
}

const two = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject("two")
    }, 2000)
  })
}

const three = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      reject("three")
    }, 10000)
  })
}

const res = () => {
  return Promise.all([one(), three(), two()])
}

res()
  .then(x => console.log(x))
  .catch(err => console.log(err))
Enter fullscreen mode Exit fullscreen mode
  • A. "["one", "three", "two"]" (despu茅s de 10s)
  • B. "one" (despu茅s de 5s)
  • C. "three" (despu茅s de 10s)
  • D. "two" (despu茅s de 2s)

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:

  • D. "two" (despu茅s de 2s)

Cuando usamos Promise.all() basta que una promesa falle para que todo el proceso termine, en este caso curiosamente fallan todas las promesas, entonces evaluamos cual es la promesa que falla primero, osea la que tiene el delay mas breve, de las tres promesas two es la que falla primero, y por ende es el error que veremos por pantalla ignorando las otras promesas.