DEV Community

Cristian Fernando
Cristian Fernando

Posted on

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

Explica este c贸digo JavaScript

Dificultad: Intermedio

const one = () => Promise.resolve("one");

const fn = async () => {
  console.log("Hola")
  const res = await one();
  console.log("Mundo")
  console.log(res)
}

console.log("Antes de la funci贸n")
fn()
console.log("Despues de la funci贸n")
Enter fullscreen mode Exit fullscreen mode

A. Antes de la funci贸n, Hola, Despu茅s de la funci贸n, one, Mundo
B. Antes de la funci贸n, Hola, Despu茅s de la funci贸n, Mundo, one
C. one, Hola, Mundo, Antes de la funci贸n, Despu茅s de la funci贸n
D. Ninguno de los anteriores

Respuesta en el primer comentario.


Top comments (1)

Collapse
 
duxtech profile image
Cristian Fernando

Respuesta:
B. Antes de la funci贸n, Hola, Despu茅s de la funci贸n, Mundo, one

El interprete de JavaScript lee la funci贸n one, luego lee la funci贸n fn, llega a la primera l铆nea de c贸digo s铆ncrono:

  • Imprimimos Antes de la funci贸n.
  • Llamamos a la funci贸n fn, la primera l铆nea del cuerpo de la funci贸n imprimimos Hola.
  • Despu茅s nos encontramos con una sentencia await que lo que hace es paralizar la ejecuci贸n de la funci贸n y llevar谩 la funci贸n one al Micro Task Queu, donde se almacenan todas las promesas.
  • Como paraliazamos la funci贸n con await ahora moestramos Despues de la funci贸n.
  • En este punto el Call Stack esta vac铆o, entonces revisamos lo que tenemos almacenado en Micro Task Queu, entonces imprimimos Mundo.
  • Finalmente mostramos por consola one

As铆 termina de ejecutarse todo.