DEV Community

Cristian Fernando
Cristian Fernando

Posted on

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

Explica este código JavaScript

Dificultad: Avanzado

const a = () => {
  return new Promise((resolve, reject) => resolve("a"))
}

const b = () => {
  return new Promise((resolve, reject) => reject("b"))
}

const c = () => {
  return new Promise((resolve, reject) => reject("c"))
}

const x = () => {
  return new Promise((resolve, reject) => resolve("x"))
}

const y = () => {
  return new Promise((resolve, reject) => resolve("y"))
}

const z = () => {
  return new Promise((resolve, reject) => reject("z"))
}

const getPromisesRejected = () => {
  return Promise.allSettled([a(), b(), c(), x(), y(), z()])
    .then(response => {
      const errors = response
                    .filter((promise) => promise.status ==="rejected")
                    .map((promise) => promise.reason)
      console.log(errors);
    }) 
    .catch( () => console.log(e))
}

getPromisesRejected()
Enter fullscreen mode Exit fullscreen mode
  • A. [ "a", "x", "y" ]
  • B. [ "b", "c", "z" ]
  • C. []
  • D. Promise { <pending> }
  • E. Ninguna de las anteriores

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:

  • B. [ "b", "c", "z" ]

Este reto parece algo complicado, pero es mas simple de lo que parece.

La función getPromisesRejected se encarga de filtar y mostrar las promesas que fallan, de un total de 6 promesas, 3 son las que fallan y justamente esas son las que vemos en un arreglo en la respuesta.