DEV Community

Cristian Fernando
Cristian Fernando

Posted on

Paracetamol.js馃拪| #57: Explica este c贸digo JavaScript

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()
Enter fullscreen mode Exit fullscreen mode
  • A: I have resolved!, second y I have resolved!, second
  • B: second, I have resolved! y second, I have resolved!
  • C: I have resolved!, second y second, I have resolved!
  • D: second, I have resolved! y I have resolved!, second

Respuesta el el primer comentario.


Discussion (1)

Collapse
duxtech profile image
Cristian Fernando Author • Edited on

Respuesta
D: second, I have resolved! y I have resolved!, second

firstFunction es una funci贸n simple que llama a myPromise usando el m茅todo then propio de las promesas. Por Event Loop las promesas pasan al Task Queue entonces primero ejecutamos el console.log y mostramos second 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 a myPromise con await esperamos el tiempo necesario para que la promesa se ejecute, entonces mostramos primero por consola 'I have resolved!' y luego second.

Cuando tenemos sintaxis async await escribimos c贸digo de manera s铆ncrona pero se ejecuta de manera as铆ncrona.