DEV Community

Nahuel Segovia
Nahuel Segovia

Posted on • Updated on

Event loop y call stack

Event loop

El bucle de eventos o event loop es un bucle(?) que verifica continuamente la pila de llamadas o Call Stack para ver si hay alguna función o tarea que deba ejecutarse.

Call Stack

Call Stack o Pila de llamadas en Javascript es una estructura de datos que registra en qué parte de ejecución del programa nos encontramos.

LAVEMOS LOS PLATOS SUCIOS

Alt Text

podemos ejemplificar la pila o call stack como una pila de platos sucios, suponemos que tenemos 4 platos sucios, entonces decidimos crear una función por cada plato para que los lave y después los acomode en la alacena:

lavarPlato1()
lavarPlato2()
lavarPlato3()
lavarPlato4()

PILA                            
LAVANDO Y ACOMODANDO PLATO 4
LAVANDO Y ACOMODANDO PLATO 3
LAVANDO Y ACOMODANDO PLATO 2
LAVANDO Y ACOMODANDO PLATO 1

SACANDO PLATOS PARA COMER:
SACANDO PLATO 4
SACANDO PLATO 3
SACANDO PLATO 2
SACANDO PLATO 1
Enter fullscreen mode Exit fullscreen mode

¿Pero… que es lo que acaba de pasar?, lo que acaba de pasar es que ese bucle es como una persona disciplinada que siempre esta haciendo cosas productivas, en este caso se dio cuenta de que tiene 4 tareas para ejecutar en la pila, lo que la llevó a ejecutar la tarea que encontró primero, que fue lavarPlato1(), entones vio que abajo tenía mas platos y siguió ejecutando la tarea que tenia asignada para cada plato hasta que ya no había platos en la pila, o ya no había pila(?).

Pero más tarde tuvo que sacar los platos para servir la cena, y primero sacó el plato 4, luego el 3… hasta llegar al último plato que es el 4.

¿Medio banal el ejemplo, no? Pero si lo pensamos como una pila de platos podemos deducir varias cosas, el event loop es un bucle que verifica el call stack o pila de llamadas de ejecución, y si encuentra una tarea para ejecutar la ejecuta, luego puede encontrar varias más adentro de esa pila por lo procede a ejecutar las demás, una vez que termina empieza a eliminarlas de la pila, empezando por el último que llego. Este es la famosa frase“El último en llegar es el primero en salir”, hasta que la pila queda vacía, al igual que la alacena cuando sacamos todos los platos :)

Así de simple lo entendí, y todo esto gracias a grandes personas que tomaron su conocimiento y su tiempo para que yo lo pueda entender, así que abajo voy a dejar la “Bibliografía” o referencias para que ante cualquier duda puedan consultarlo por ustedes mismos.

¿Qué diablos es el bucle de eventos? — Phillip Roberts

La pila de ejecución(Call Stack) de Javascript — La Cocina del Código

Top comments (2)

Collapse
 
arielonoriaga profile image
Ariel Onoriaga

En sí me parece genial haber mencionado el video que creo Sacha.

¡Muy buen aporte!
Estaría genial que generes un post similar en ingles.

Collapse
 
nahuelsegovia profile image
Nahuel Segovia

Gracias por apoyar mi contenido, la verdad es que hace rato que vengo pensando en escribir posts en inglés, así que tomo la sugerencia.