Callbacks
Un callback es una función que se pasa como argumento a otra función y se ejecuta después de que esa función termine su trabajo. Es el patrón más básico para manejar operaciones asíncronas en JavaScript.¿Qué es un Callback?
Un callback es simplemente una función que se ejecuta “después” de otra operación:Desglose del Ejemplo
1
saludar acepta dos parámetros
nombre: un stringcallback: una función que se ejecutará después
2
saludar hace su trabajo
Imprime el saludo con el nombre.
3
saludar ejecuta el callback
Llama a
callback(), que ejecuta la función despedir.Los callbacks son funciones regulares. Lo especial es cuándo y dónde se ejecutan.
Callbacks con Funciones Anónimas
No necesitas definir el callback por separado. Puedes usar una función anónima:Callbacks Asíncronos
Los callbacks realmente brillan con operaciones asíncronas comosetTimeout:
Callbacks con Parámetros
Los callbacks pueden recibir parámetros:Callbacks para Manejo de Errores
Una convención común es pasar el error como primer parámetro del callback:El Problema: Callback Hell
Cuando necesitas realizar múltiples operaciones asíncronas en secuencia, los callbacks pueden volverse difíciles de manejar:- Difícil de leer (forma de “pirámide”)
- Difícil de mantener
- Difícil de manejar errores
- Difícil de agregar nuevos pasos
Un Ejemplo Más Real de Callback Hell
Buenas Prácticas con Callbacks
1. Usa Funciones con Nombre
En lugar de funciones anónimas anidadas:2. Maneja Errores Apropiadamente
3. Mantén los Callbacks Simples
Callbacks en Funciones de Array
Los callbacks también se usan en métodos de array:Cuándo Usar Callbacks
✅ Buenos Casos de Uso
✅ Buenos Casos de Uso
- Operaciones asíncronas simples y únicas
- Event listeners
- Métodos de array (map, filter, forEach)
- APIs que solo soportan callbacks
❌ Cuándo Evitarlos
❌ Cuándo Evitarlos
- Múltiples operaciones asíncronas en secuencia
- Lógica compleja de manejo de errores
- Cuando necesitas coordinar múltiples operaciones asíncronas
- En código moderno (usa Promises o async/await en su lugar)
La Evolución: De Callbacks a Promises
Los callbacks fueron la primera solución para el asincronismo en JavaScript, pero tienen limitaciones. Por eso se crearon las Promises, que resuelven muchos de los problemas de los callbacks.Próximos Pasos
Promises
Aprende cómo Promises mejoran el manejo asíncrono
Async/Await
La sintaxis más moderna para código asíncrono