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.


Latest 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.