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))
- A. (después de 5s)
[{
status: "fulfilled",
value: "one"
},
{
status: "fulfilled",
value: "three"
},
{
status: "fulfilled",
value: "two"
}
}]
- B. (después de 2s)
[{
status: "fulfilled",
value: "one"
},
{
status: "fulfilled",
value: "three"
},
{
status: "fulfilled",
value: "two"
}
}]
- C. (de manera inmediata, después de 0s)
[{
status: "fulfilled",
value: "three"
}]
- D.
Promise.allSettled() no existe en Javascript
Respuesta en el primer comentario.
Top comments (1)
Respuesta:
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
tarda5s
.