Callbacks vs Handlers en JavaScript: ¿cuál usar y cuándo?

| Última modificación: 18 de marzo de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

En el desarrollo web, a veces nos encontramos con decisiones complicadas. Entre ellas, la eterna pregunta: callbacks vs handlers en JavaScript, ¿cómo usarlos? Si alguna vez te has planteado esta duda, sigue leyendo.

¿Qué son los callbacks vs handlers en JavaScript?

Callbacks

Empecemos con el concepto de la función de callback. En JavaScript, las funciones son ciudadanos de primera clase, lo que significa que podemos tratarlas como cualquier otro objeto: podemos pasarlas como parámetros y retornarlas en otras funciones. Una función de callback es simplemente una función que se pasa a otra función como parámetro y se ejecuta después, cuando “el tiempo sea el correcto”.

Piensa que las funciones de callback son esenciales cuando queremos que ciertas partes de nuestro código esperen a que otras finalicen antes de comenzar a tocar. Son como el solo de un violinista esperando el momento perfecto para entrar.

function miFuncion(callback) {
    // Hacer algo...
    callback();
}

Event Handler

Por otro lado, tenemos los manejadores de eventos o event handlers. Son funciones que se ejecutan en respuesta a un evento específico. Pueden ser un clic de ratón, una pulsación de tecla, un cambio en el contenido de un input… En resumen, el evento es el rey aquí.

button.addEventListener('click', miEventHandler);

function miEventHandler() {
    // Hacer algo...
}

Callbacks vs handlers en JavaScript

Cuando la ocasión lo requiere

Aquí viene la pregunta del millón: ¿cuándo debemos usar callbacks y cuándo event handlers? Depende de cada caso. Si necesitas ejecutar una función después de que se complete otra, los callbacks son tu elección. Son útiles, por ejemplo, cuando haces una solicitud a una API y necesitas manejar la respuesta.

Por otro lado, si tu función debe ejecutarse en respuesta a una acción del usuario, los event handlers son la elección perfecta. Con los event handlers puedes controlar exactamente cómo y cuándo se ejecuta tu función. En palabras sencillas, los handlers son nuestros genios de la improvisación, que tocan al compás de los eventos del usuario, como un saxofonista de jazz que toca según el ritmo del público.

Stack Overflow

No temas preguntar en la comunidad. Lugares como Stack Overflow están llenos de desarrolladores experimentados que pueden ofrecerte consejos útiles basados en tu caso específico. Nunca subestimes el poder de un poco de ayuda externa.

Ejemplos prácticos de callbacks vs handlers en JavaScript

Un uso común de los callbacks es en operaciones asíncronas, como una solicitud de red. Aquí hay un ejemplo de cómo puedes hacer una solicitud de red utilizando la función fetch y proporcionando una función de callback para manejar la respuesta.

fetch('https://api.example.com/datos', {
  method: 'GET'
})
.then(response => response.json()) // este es nuestro callback
.then(data => console.log(data))   // este es otro callback
.catch(error => console.log('Hubo un error: ', error));  // y otro más

En este caso, la función fetch realiza una solicitud de red y devuelve una promesa. Usamos la función .then() para proporcionar un callback que se ejecutará una vez que la promesa se resuelva.

Los manejadores de eventos se utilizan para manejar interacciones del usuario, como clics o pulsaciones de teclas. Aquí tienes un ejemplo de un manejador de eventos que maneja un clic en un botón:

let button = document.getElementById('miBoton');

button.addEventListener('click', function(event) {  // aquí está nuestro handler
  event.preventDefault();
  console.log('¡Has hecho click en el botón!');
});

En este ejemplo, usamos la función addEventListener para adjuntar un manejador de eventos al botón. Este manejador de eventos se activa cuando el usuario hace clic en el botón.

Estos son ejemplos básicos de cómo se utilizan los callbacks vs handlers en JavaScript. En la práctica, las cosas pueden ser mucho más complejas, pero estos ejemplos deberían darte una buena base de cómo funcionan.

En definitiva, entender la batalla entre callbacks vs handlers en JavaScript no solo mejorará la eficiencia de tu código, sino que también facilita la tarea de mantenerlo y depurarlo. Este conocimiento te permitirá orquestar un código limpio, eficiente y fácil de entender.

¿Quieres saber más?

En la batalla entre callbacks vs handlers en JavaScript, la verdadera victoria está en entender cuándo y cómo usar cada uno. En JavaScript, tanto los callbacks como los event handlers son herramientas valiosas, por lo que, como desarrollador, debes dominar ambos y saber cuándo emplearlos. Para seguir aprendiendo sobre esto y mucho más, te invitamos a nuestro Desarrollo Web Full Stack Bootcamp. ¿Quieres convertirte en el desarrollador profesional que siempre has soñado ser? ¡Pide información ahora y descubre cómo lograrlo en pocos meses!

Alberto Casero

Alberto Casero es CTO en Watium, Fundador de Kas Factory & Coordinador del Bootcamp en Desarrollo Web.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Desarrollo Web

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado