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.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando • Edited

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.