Recursos

Introducción al asincronismo

JavaScript es un lenguaje de programación asíncrono y no bloqueante que utiliza un manejador de eventos conocido como Event loop implementado en un único hilo para sus interfaces de entrada y de salida.

Entonces, ¿Qué es asincronismo?, En simples palabras Es la acción que no ocurre al mismo tiempo.

¿Cómo JavaScript maneja el Asincronismo?

JavaScript se puede ver como un aeropuerto, en donde la pista es el thread (hilo principal de ejecución), y la torre de control es el EventLoop se encarga de ver que aviones salen y entra.

Untitled

Como JavaScript es un lenguaje bloqueante y maneja un solo hilo por ende, tenemos una entrada que va hacia su salida, relacionando el aeropuerto con el asincronismo, lo que se puede ver es que no se va a permitir recibir dos aviones, ni tampoco despacharlos al mismo tiempo

Untitled

Existen términos que nos toparemos como el memory heap que es el espacio en memoria compartido para toda nuestra aplicación. Tambien que nuestras funciones estarán colocadas en nuestra pila de ejecución y también tendremos nuestra cola de tareas.

Untitled

Que es la cola de tareas? Imaginemos que solo tenemos una función en la pila de ejecución como un setTimeOut, la cuál se va a desencadenar por medio de un call back, y esta estará puesta en nuestra cola de tareas.

Untitled

Mientras tanto vamos a tener otras funcionas que se van a ir ejecutando, van a estar entrando y saliendo.

Untitled

Así funcionará nuestro programa, pero el Event Loop es el encargado de preguntar o entender si la pila de ejecución esta vacía para poder resolver el callback de esta primera función. Una vez que es liberada, terminará la ejecución.