0% encontró este documento útil (0 votos)
30 vistas3 páginas

Conceptos JS

Este documento explica conceptos clave sobre asincronía en JavaScript como threads, bloqueante/no bloqueante, síncrono/asíncrono, concurrencia, event loop y formas de manejarla como callbacks, promesas y async/await.

Cargado por

Mateo Espinosa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
30 vistas3 páginas

Conceptos JS

Este documento explica conceptos clave sobre asincronía en JavaScript como threads, bloqueante/no bloqueante, síncrono/asíncrono, concurrencia, event loop y formas de manejarla como callbacks, promesas y async/await.

Cargado por

Mateo Espinosa
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 3

✍🏾 Conceptos importantes para entender el asincronismo:

• 🧵 Thread: Thread para Javascript permite realizar programación multihilos en este entorno. En
realidad, simula la creación y ejecución de hilos, pero para el desarrollador es lo mismo. Ésto
simplifica muchísimo la creación de aplicaciones Javascript.

• 🚫 Bloqueante: Una llamada u operación bloqueante no devuelve el control a la aplicación hasta


que se ha completado. Por tanto el thread queda bloqueado en estado de espera.

• 🚿 No bloqueante: Una tarea no bloqueante se devuelve inmediatamente con independencia del


resultado. Si se completó, devuelve los datos. Si no, un error.

• Síncrono: Las tareas se ejecutan de forma secuencial, se debe esperar a que se complete para
continuar con la siguiente tarea.

• 🚦 Asíncrono: Las tareas pueden ser realizadas más tarde, lo que hace posible que una respuesta
sea procesada en diferido. La finalización de la operación I/O (entrada/salida) se señaliza más tarde,
mediante un mecanismo específico como por ejemplo un callback, una promesa o un evento, lo que
hace posible que la respuesta sea procesada en diferido.

• Paralelismo: El paralelismo es la ejecución simultánea de dos o más tareas. Algunas tareas se


pueden dividir en partes más pequeñas que pueden ser resueltas simultáneamente.

• 🎮 Concurrencia: La concurrencia es la capacidad de un algoritmo o programa para ejecutar más


de una tarea a la vez. El concepto es similar al procesamiento paralelo, pero con la posibilidad de
que muchos trabajos independientes hagan diferentes cosas a la vez en lugar de ejecutar el mismo
trabajo.

• 🌀 Eventloop o Loop de eventos: El bucle de eventos es un patrón de diseño que espera y


distribuye eventos o mensajes en un programa.
📝 Formas de manejar la asincronía en JavaScript:
.

• 📩 Callbacks: Una función que se pasa como argumento de otra función y que será invocada.

• 🫱🏼‍🫲🏾 Promesas: (implementado en ES6) Una promesa es una función no-bloqueante y


asíncrona la cual puede retornar un valor ahora, en el futuro o nunca.

• Async / Await: (implementado en ES2017) Permite estructurar una función asincrónica sin
bloqueo de una manera similar a una función sincrónica ordinaria.

⏳ El asincronismo es una manera de aprovechar el tiempo y los recursos de la aplicación,


ejecutando tareas y procesos mientras otros son resueltos en background (como la llegada
de la información de una API), para posteriormente continuar con las tareas que requerían
esa información que no tenías de manera instantánea.

Un ejemplo fácil de asincronismo vs sincronismo es invitar a unos amigos a una fiesta y


ofrecer una parrillada. Primero decides colocar la carne y verduras a la parrilla y luego
repartir bebidas y algo para picar (snacks). Si fuera una persona síncrona (Blocking)
tendrías que esperar a que la comida de la parrilla esté cocinada y luego atender a los
invitados. Pero si fuera una persona asíncrona (Non Blocking) luego de poner la carne al
carbón, sacas las bebidas frías de la nevera y compartes con los invitados mientras se
cocina la carne. La acción de que la comida en la parrillada esté lista sería un callback que
está esperando que finalice el proceso para ejecutarse. Pero otros procesos (como compartir
la velada con bebidas y algo de picar) ya podrían irse realizando.

Otros Conceptos a tener en cuenta:


JSON: JavaScript Object Notation (JSON) es un formato basado en texto estándar para representar
datos estructurados en la sintaxis de objetos de objetos de Javascript. Los JSON son cadenas - útiles
cuando se quiere transmitir datos a través de una red.

Node.JS: Node.js es un entorno controlado por eventos diseñado para crear aplicaciones
escalables, permitiéndote establecer y gestionar múltiples conexiones al mismo tiempo. Gracias a
esta característica, no tienes que preocuparte con el bloqueo de procesos, pues no hay bloqueos.

NPM: Mientras que Node.js es un entorno de ejecución de JavaScript, el Node Package Manager
o npm es una gran parte del ecosistema de Node.js.

Es un gestor de paquetes que permite a las comunidades de JavaScript y Node.js publicar y


compartir sus módulos de node con otras personas. Esto hace que el proceso de desarrollo de
aplicaciones sea más rápido y eficiente.

Como una herramienta de línea de comandos que ayuda a interactuar con plataformas en línea,
como navegadores y servidores. Esto ayuda a instalar y desinstalar paquetes, gestión de versiones
y gestión de dependencias necesarias para ejecutar un proyecto.

Un paquete en node.js contiene todos los archivos que necesitas para instalar un módulo. Los
módulos son bibliotecas de JavaScript que puedes incluir en tu proyecto.

Iniciamos NPM con el comando npm init dentro de la terminal, estando dentro de la carpeta o
espacio de trabajo de los archivos.

Instalamos paquetes a través del comando npm i (nombre del paquete). Estos paquetes se reservan
en la carpeta de Node-modules y package.json, donde se encuentran en la parte de las
dependencias.

También podría gustarte