DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #206: 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.