En un lenguaje de programación asíncrono como JavaScript, las tareas pueden ejecutarse secuencialmente, esto significa que podemos indicar que algunas tareas se pasen a segundo plano y esperen a su turno para ser reanudadas y ejecutadas.
Esta característica del lenguaje existe para mejorar el rendimiento del mismo, porque nos permite aprovechar al máximo las capacidades del equipo en el que se está ejecutando nuestro código.
Por lo general las tareas que se esperan sean más tardadas, o que necesiten esperar respuesta de algún otro elemento del sistema, son candidatas a ser delegadas a este proceso de espera y ejecución.
JavaScript es un lenguaje de ejecución sobre un solo hilo, esto significa que sólo puede ejecutar una tarea a la vez. Cuando una operación tarda demasiado o está esperando la respuesta de otra, decimos que bloquea las demás instrucciones, precisamente porque JavaScript no puede ejecutar dos a la vez.
Para solucionar esto, JavaScript introduce el event loop, o ciclo de eventos. El event loop se compone de dos componentes principales, una cola de mensajes y un ciclo que se encuentra iterando esta cola de mensajes. La programación asíncrona en JavaScript funciona empujando ciertas operaciones a esta cola de actividades, para que no bloqueen la ejecución de código mientras terminan, el trabajo del event loop es estar preguntando las operaciones de la cola de actividades si ya han finalizado, y cuando lo hacen, reanuda la ejecución de dicha operación, la recupera por así decirlo.
Para que todo esto funcione, necesitas una forma de delegar ciertas operaciones a esta cola, y una forma de saber cuándo estas operaciones han terminado, para hacerlo JavaScript introdujo inicialmente el concepto de callbacks, y después el de promesas, finalmente a la sintaxis se introdujeron las funciones asíncronas, todos estos conceptos están diseñados para que esta comunicación entre el event loop, la cola de actividades y tu código, suceda.
Veamos en la práctica como hacerlo.
-
check_circle_outlineMódulo 1 | 10 clases
Introducción
expand_more -
check_circle_outlineMódulo 2 | 13 clases
Conceptos básicos
expand_more -
check_circle_outlineMódulo 3 | 8 clases
Fundamentos de funciones
expand_more -
check_circle_outlineMódulo 4 | 10 clases
Arreglos
expand_more -
check_circle_outlineMódulo 5 | 6 clases
Objetos y JSON
expand_more -
check_circle_outlineMódulo 6 | 4 clases
El contexto
expand_more -
check_circle_outlineMódulo 7 | 7 clases
Clases
expand_more -
check_circle_outlineMódulo 8 | 4 clases
Prototipos
expand_more -
check_circle_outlineMódulo 9 | 8 clases
Programación asíncrona
expand_more-
done_all
Clase 1
Qué es la programación asíncrona
-
done_all
Clase 2
Configuración de node.js
-
done_all
Clase 3
Callbacks
-
done_all
Clase 4
Promesas
-
done_all
Clase 5
Callbacks de las promesas
-
done_all
Clase 6
Crear promesas
-
done_all
Clase 7
Resolver múltiples promesas
-
done_all
Clase 8
Encadenar promesas
-
-
check_circle_outlineMódulo 10 | 4 clases
Funciones asíncronas (async | await)
expand_more -
check_circle_outlineMódulo 11 | 5 clases
Módulos
expand_more -
check_circle_outlineMódulo 12 | 10 clases
Generadores e iteradores
expand_more -
check_circle_outlineMódulo 13 | 11 clases
Cadenas a fondo
expand_more -
check_circle_outlineMódulo 14 | 7 clases
Expresiones regulares
expand_more