JavaScript es un lenguaje de programación que se diferencia de muchos otros lenguajes dinámicos en que su modelo está orientado a eventos en vez de a hilos. Esto nos abre la posibilidad de manejar eventos asincrónicos, fundamentales para un proyecto flexible. Por ello, en este post, te enseñaremos qué es y cómo funciona la asincronía en JavaScript.
¿Qué es la asincronía en JavaScript?
Antes de hablar de qué es la asincronía en JavaScript, debemos entender qué es la comunicación sincrónica vs la comunicación asincrónica. Entonces, pensemos en una llamada telefónica en comparación a un mensaje de texto. La llamada telefónica es comunicación sincrónica, porque el mensaje se recibe al mismo tiempo que se manda. Por otro lado, un mensaje de texto es comunicación asincrónica, pues es una acción que se ejecuta en un momento, pero solo finaliza cuando la otra parte lee el texto.
Este tipo de acciones son parte de nuestra vida diaria y, como la programación se basa en simular la vida real, son programables. Otro ejemplo que nos ayuda a pensar en la comunicación asincrónica en contraste a la comunicación sincrónica es un simple mandado.
Entonces, supongamos que le hemos pedido a alguien que vive con nosotros que vaya a comprar el pan. Durante esta conversación, además le hemos dicho que, si no hay la barra de pan de siempre, que compre un bollo de pan, que también nos gusta. En este ejemplo, si le decimos a la persona que vaya a por pan inmediatamente, estamos creando una acción sincrónica.
Sin embargo, puede que el mandado no sea tan urgente. Entonces, decidimos que, cuando la persona tenga un momento, vaya por pan. De este modo, hemos preparado una acción asincrónica. Aunque no conocemos el momento exacto en el que sucederá la acción de ir a por pan, sabemos qué debe pasar cuando suceda: si no hay el de siempre, compra el bollo.
La asincronía en JavaScript funciona de manera similar. Lo que hacemos en este lenguaje de programación es programar acciones que se ejecutarán en caso de que otra acción suceda. Por ejemplo, con el comando .onclick podemos programar que cuando el usuario haga clic en determinado lugar, algo suceda. Sin embargo, no podemos controlar cuándo, ni quiera si sucederá la acción.
A este tipo de programaciones la llamamos asincronía porque las características que deben estar en juego para que una acción se ejecute no se comportan de manera sincrónica. Es decir, programamos acciones que pueden llegar a ser ejecutadas, pero no sabemos cuándo. Incluso puede que no sucedan nunca.
¿Para qué sirve la asincronía en JavaScript?
La asincronía en JavaScript es una de las razones por las que decimos que este lenguaje de programación está orientado a eventos.La programación orientada a eventos es aquella que prepara la ejecución de código en función de los eventos que pueden ocurrir. Es decir, preparamos el código por si un evento sucede. Esto hace que nuestros proyectos sean mucho más complejos, pues sabrán qué deben hacer cuando ciertos eventos tengan lugar.
Para conocer más sobre este concepto, te invitamos a leer el post de Mozilla Developer Network sobre JavaScript asícrono.
La asincronía en JavaScript se puede manejar a través de distintos elementos, como lo son las promesas y métodos de control del tiempo. Con ellas, dejamos preparado el comportamiento de nuestro proyecto, pero no lo ejecutamos de manera inmediata.
¿Qué sigue?
Ahora que sabes qué es y cómo funciona el concepto de asincronía en JavaScript, te invitamos a leer nuestro artículo sobre concurrencia y asincronía en JavaScript
Por último, debes saber que puedes seguir aprendiendo con nosotros sobre las posibilidades que este lenguaje de programación tiene para ti en nuestro Desarrollo Web Full Stack Bootcamp. Allí, en pocos meses, aprenderás a dominar este y otros lenguajes para la web, como CSS y HTML. ¡No te lo pierdas y matricúlate ya para convertirte en un desarrollador experto!