DEV Community

Cristian Fernando
Cristian Fernando

Posted on • Edited on

Paracetamol.js💊| #205: Explica este código JavaScript

Explica este código JavaScript

Dificultad: Intermedio

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

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

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

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

res()
  .then(x => console.log(x))
  .catch(err => console.log(err))
Enter fullscreen mode Exit fullscreen mode
  • A. (después de 5s)
[{
  status: "fulfilled",
  value: "one"
}, 
{
  status: "fulfilled",
  value: "three"
}, 
{
  status: "fulfilled",
  value: "two"
}
}]
Enter fullscreen mode Exit fullscreen mode
  • B. (después de 2s)
[{
  status: "fulfilled",
  value: "one"
}, 
{
  status: "fulfilled",
  value: "three"
}, 
{
  status: "fulfilled",
  value: "two"
}
}]
Enter fullscreen mode Exit fullscreen mode
  • C. (de manera inmediata, después de 0s)
[{
  status: "fulfilled",
  value: "three"
}]
Enter fullscreen mode Exit fullscreen mode
  • D. Promise.allSettled() no existe en Javascript

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:

  • A. (después de 5s)
[{
  status: "fulfilled",
  value: "one"
}, 
{
  status: "fulfilled",
  value: "three"
}, 
{
  status: "fulfilled",
  value: "two"
}
}]
Enter fullscreen mode Exit fullscreen mode

Promise.allSettled() siempre se ejecuta independientemente si las promesas evaludas se resuelven o fallan.
Nos mostrara un arreglo con el estado de todas las promesas, tanto las que fallaron como las que se resolvieron.

Al evaluar todas las promesas el tiempo que tardará siempre será el delay más alto, en este caso one tarda 5s.