Saltar al contenido
Logotipo de Trainontech Trainontech

Lenguajes y Fundamentos de Programación · LNG-132

JavaScript avanzado: asincronía, módulos y patrones

Del bucle de eventos a los patrones que sostienen el código asíncrono de un proyecto real.

Bajo demanda Avanzado 8 módulos · 40 clases

Formato asíncrono Desarrollo JavaScript

Lo que aprenderás

  • Explicar el orden de ejecución de un programa leyendo la cola de microtareas y macrotareas.
  • Encadenar promesas y controlar rechazos con async/await sin anidar retrollamadas ni tragarse errores.
  • Escribir iteradores y generadores para consumir flujos de datos por partes y con pausa.
  • Organizar el código en módulos ESM con exportaciones nombradas e importaciones dinámicas.
  • Aplicar cierres para encapsular estado y construir fábricas, memoización y aplicación parcial.
  • Diagnosticar fugas de memoria y bloqueos del hilo principal con el panel de rendimiento del navegador.

Contenido del curso

8 módulos · 40 clases en vídeo · práctica guiada en cada módulo

Módulo 1 · Presentación y entorno de depuración 4 clases
  • Qué asume este curso y qué revisa por encima
  • Consola, depurador y puntos de interrupción
  • Node.js frente a navegador: dos entornos, un lenguaje
  • Cómo se mide una mejora a lo largo del curso
Módulo 2 · El modelo de ejecución 5 clases
  • Pila de llamadas y contexto de ejecución
  • Bucle de eventos, cola de tareas y cola de microtareas
  • setTimeout, queueMicrotask y el orden real
  • Bloqueo del hilo principal: síntomas y medida
  • Ejercicio: predecir la salida antes de ejecutarla
Módulo 3 · Ámbitos, cierres y this 5 clases
  • Ámbito léxico y cadena de ámbitos
  • Cierres: qué se captura y cuánto vive
  • Fábricas, contadores y memoización con cierres
  • this, call, apply y bind sin confusiones
  • Funciones flecha y su enlace léxico
Módulo 4 · Asincronía con promesas 6 clases
  • De la retrollamada a la promesa
  • Estados, encadenamiento y propagación de errores
  • async/await y bloques try/catch
  • Promise.all, allSettled, race y any
  • Cancelación con AbortController
  • Errores silenciados: rechazos no gestionados
Módulo 5 · Iteradores, generadores y flujos 5 clases
  • Protocolo iterable y for...of
  • Escribir un generador paso a paso
  • Generadores asíncronos y for await...of
  • Paginar una API sin cargarlo todo en memoria
  • Streams de Node y contrapresión
Módulo 6 · Módulos y organización del código 5 clases
  • ESM frente a CommonJS: diferencias reales
  • Exportaciones nombradas y por defecto
  • Importaciones dinámicas y carga diferida
  • Dependencias circulares: detectarlas y romperlas
  • Empaquetado y árbol de dependencias
Módulo 7 · Patrones del ecosistema 5 clases
  • Módulo revelador y espacios privados
  • Observador y emisores de eventos
  • Inyección de dependencias sin framework
  • Proxy y Reflect para interceptar accesos
  • Composición frente a herencia con prototipos
Módulo 8 · Caso práctico: cliente asíncrono con reintentos 5 clases
  • Diseño del cliente y de sus errores
  • Reintentos con retroceso exponencial
  • Cola de peticiones con límite de concurrencia
  • Perfilado y ajuste con el panel de rendimiento
  • Entrega: módulo publicable y documentado

Requisitos

  • Manejo previo de JavaScript: funciones, objetos, arrays y manipulación del DOM.
  • Node.js instalado en el equipo, o la consola del navegador para los ejercicios cortos.
  • Soltura con la línea de comandos para instalar dependencias y ejecutar scripts.

Descripción

Llega un momento en que el código funciona pero nadie sabe por qué se ejecuta en ese orden. Aparecen promesas que no se esperan, errores que desaparecen sin dejar rastro y funciones que recuerdan valores que ya no deberían existir. Este curso se ocupa justo de esa capa: el modelo de ejecución de JavaScript y los mecanismos del lenguaje que se dan por sabidos y casi nunca se explican.

Cada bloque parte de un fragmento que se comporta de forma inesperada y lo desmonta hasta la causa. Se trabaja el bucle de eventos con trazas reales, se reescriben cadenas de retrollamadas a promesas y a async/await, se construyen generadores para paginar una API y se modulariza un proyecto pequeño. Los patrones se introducen cuando el problema los pide, no como catálogo previo.

Al terminar queda la capacidad de leer código ajeno del ecosistema, de librerías a frameworks, sin depender de la magia aparente. Es la base natural para entrar en Node.js del lado del servidor, en TypeScript o en cualquier framework de interfaz, donde estos mismos mecanismos aparecen envueltos en otra sintaxis pero funcionan igual.

¿Para quién es este curso?

  • Desarrolladores frontend que mantienen una aplicación y quieren dejar de depurar a ciegas.
  • Programadores de backend que llegan a Node.js desde otro lenguaje y chocan con la asincronía.
  • Personas que revisan código ajeno y necesitan leer librerías del ecosistema sin perderse.
Bajo demanda

Curso diseñado con la ficha cerrada. Se produce al confirmarse un grupo o un contrato.

Código
LNG-132
Nivel
Avanzado
Público
Desarrollo
Entorno
JavaScript

Este curso incluye

  • 40 clases en vídeo bajo demanda
  • Práctica en entornos web y simuladores, sin instalar nada
  • Tutorización en el campus
  • Acceso desde móvil, tableta y ordenador
  • Actualizaciones cuando cambia la versión de la herramienta
  • Certificado de finalización

Sigue aprendiendo

Cursos relacionados

PY-106Lenguajes y Fundamentos de Programación

Concurrencia: multihilo y multiproceso

Paralelizar adquisición de datos y tareas de E/S sin introducir errores difíciles de reproducir.

Python

Avanzado 33 clases

PY-107Lenguajes y Fundamentos de Programación

Testing y TDD en Python

Pruebas unitarias, fixtures y desarrollo dirigido por pruebas en proyectos técnicos reales.

Python

Avanzado 34 clases

PY-131Lenguajes y Fundamentos de Programación

Webscraping con agentes de IA en local

Agentes que navegan y extraen datos sin depender de servicios en la nube.

PythonOllama

Avanzado 34 clases