Explica este código JavaScript
const myPromise = () => Promise.resolve('I have resolved!')
function firstFunction() {
myPromise().then(res => console.log(res))
console.log('second')
}
async function secondFunction() {
console.log(await myPromise())
console.log('second')
}
firstFunction()
secondFunction()
- A:
I have resolved!,secondyI have resolved!,second - B:
second,I have resolved!ysecond,I have resolved! - C:
I have resolved!,secondysecond,I have resolved! - D:
second,I have resolved!yI have resolved!,second
Respuesta el el primer comentario.
Top comments (1)
Respuesta
D:
second,I have resolved!yI have resolved!,secondfirstFunctiones una función simple que llama amyPromiseusando el métodothenpropio de las promesas. Por Event Loop las promesas pasan al Task Queue entonces primero ejecutamos elconsole.logy mostramossecondpor consola, ahora el Call Stack esta vacio y la promesa que estaba en la Task Queue pasa al Call Stack y resolvemos la promesa mostrando'I have resolved!'.secondFunctiones una función asíncrona, al llamar amyPromiseconawaitesperamos el tiempo necesario para que la promesa se ejecute, entonces mostramos primero por consola'I have resolved!'y luegosecond.Cuando tenemos sintaxis
async awaitescribimos código de manera síncrona pero se ejecuta de manera asíncrona.