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!
,second
yI have resolved!
,second
- B:
second
,I have resolved!
ysecond
,I have resolved!
- C:
I have resolved!
,second
ysecond
,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!
,second
firstFunction
es una función simple que llama amyPromise
usando el métodothen
propio de las promesas. Por Event Loop las promesas pasan al Task Queue entonces primero ejecutamos elconsole.log
y mostramossecond
por 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!'
.secondFunction
es una función asíncrona, al llamar amyPromise
conawait
esperamos el tiempo necesario para que la promesa se ejecute, entonces mostramos primero por consola'I have resolved!'
y luegosecond
.Cuando tenemos sintaxis
async await
escribimos código de manera síncrona pero se ejecuta de manera asíncrona.