📄️ Introducción a la asincronía en JS
JavaScript es un lenguaje single-threaded (usa un solo hilo de ejecución principal). Esto significa que solo puede ejecutar una tarea a la vez.
📄️ Callbacks vs Promises
En JavaScript, cuando necesitamos manejar tareas asincrónicas (peticiones a APIs, timers, operaciones en disco, etc.), tenemos varias herramientas:
📄️ Encadenamiento de Promises
El encadenamiento de Promises consiste en conectar varias operaciones asincrónicas de manera secuencial usando el método .then(). Cada .then() recibe el resultado de la Promise anterior y devuelve un nuevo valor o una nueva Promise.
📄️ async/await y control de errores
async/await es azúcar sintáctico (syntactic sugar) introducido en ES2017 que facilita trabajar con Promises:
📄️ Fetch API: peticiones GET, POST y manejo de respuestas
La Fetch API es una interfaz nativa de JavaScript que permite realizar solicitudes HTTP asincrónicas. Está basada en Promises, lo que la hace más moderna y legible que APIs como XMLHttpRequest. Permite recuperar datos desde un servidor o enviar información sin necesidad de recargar la página.
📄️ Manejo avanzado de errores con try/catch
El manejo de errores es fundamental para garantizar:
📄️ Cancelación de peticiones y AbortController
AbortController es una interfaz del navegador que permite cancelar peticiones Fetch antes de que se completen, mediante una señal AbortSignal. Es ideal cuando necesitas cancelar peticiones por timeout, navegación, cierre de sesión, búsqueda dinámica, etc.
📄️ Closures: definición y usos prácticos
Un closure es una función que “recuerda” el entorno léxico en el que fue creada, incluso después de que ese entorno haya dejado de existir.
📄️ Funciones de orden superior
Una función de orden superior (HOF, por sus siglas en inglés) es una función que:
📄️ Currying y composición
¿Qué es el Currying?
📄️ Contexto de ejecución y scopes
El contexto de ejecución (Execution Context) es el entorno donde se evalúa y ejecuta el código JavaScript. Cada vez que se llama una función, se crea un nuevo contexto.