Un callback es una función que se pasa como argumento a otra función para que sea ejecutada (llamada) después de que se complete cierta tarea o evento. En esencia, un callback es una forma de decir: “Cuando termines esto, por favor ejecuta esta otra función”.

Esta técnica es fundamental en la programación, especialmente en contextos donde las operaciones no son inmediatas, como llamadas a bases de datos, solicitudes a servidores, animaciones, o interacción con el usuario.

¿Por qué son necesarios los Callbacks?

En muchos lenguajes y paradigmas, el código se ejecuta secuencialmente, línea por línea. Sin embargo, en aplicaciones modernas (sobre todo web o sistemas con múltiples tareas), hay procesos que toman tiempo —por ejemplo, una consulta a una API o una lectura de archivo— y no queremos que el programa “se quede esperando” sin hacer nada.

Los callbacks permiten:

  • Ejecutar código de forma asíncrona: Permiten que el programa continúe con otras tareas mientras espera que una operación termine.
  • Gestionar eventos: Como clics del usuario, respuestas del servidor o temporizadores.
  • Mantener la modularidad: Separar el proceso principal de lo que debe ocurrir después, haciendo el código más limpio y reutilizable.

¿Cómo funciona un Callback?

Cuando pasamos una función como argumento, la función receptora la guarda y la ejecuta cuando se cumple una condición, como la finalización de una tarea.

Por ejemplo, en JavaScript:

 

function procesarDatos(datos, callback) {
    console.log("Procesando datos...");
    // Simulamos una tarea que tarda
    setTimeout(() => {
        console.log("Datos procesados");
        callback();  // Aquí llamamos al callback
    }, 2000);
}

function mostrarMensaje() {
    console.log("¡Tarea completada!");
}

procesarDatos([1,2,3], mostrarMensaje);

En este ejemplo:

  • procesarDatos recibe dos argumentos: los datos y una función callback.
  • Tras un retraso simulado, se ejecuta el callback, mostrando el mensaje final.

Tipos de Callbacks

  • Callbacks síncronos: Se ejecutan inmediatamente dentro de la función que los recibe. Son comunes para tareas rápidas.

 

function operacion(a, b, callback) {
    let resultado = a + b;
    callback(resultado);
}

operacion(3, 4, function(res) {
    console.log("Resultado:", res);
});
  • Callbacks asíncronos: Se ejecutan después de que termina una operación que tarda tiempo, como peticiones a servidores o lectura de archivos.

 

setTimeout(() => {
    console.log("Esto se muestra después de 3 segundos");
}, 3000);

Callbacks y la Programación Asíncrona

Los callbacks son la base de la programación asíncrona en muchos lenguajes, especialmente en JavaScript. Permiten manejar operaciones que no son instantáneas sin bloquear la ejecución del programa.

Sin embargo, un uso excesivo o mal gestionado de callbacks puede llevar a problemas de legibilidad y mantenimiento conocidos como callback hell o «infierno de callbacks», donde las funciones anidadas crecen en complejidad.

Alternativas modernas a los Callbacks

Para evitar el callback hell, hoy en día se usan patrones como:

  • Promises: Objetos que representan la eventual finalización (o falla) de una operación asíncrona.

 

function tareaAsincrona() {
    return new Promise((resolve) => {
        setTimeout(() => {
            resolve("Operación completada");
        }, 2000);
    });
}

tareaAsincrona().then(mensaje => console.log(mensaje));
  • Async/Await: Sintaxis que hace el código asíncrono más legible y parecido al síncrono.

 

async function ejecutar() {
    let resultado = await tareaAsincrona();
    console.log(resultado);
}

ejecutar();

Ejemplos comunes de Callbacks

  • Manejo de eventos en interfaces gráficas:

 

boton.addEventListener('click', function() {
    console.log("Botón clickeado");
});
  • Operaciones con archivos:

 

const fs = require('fs');
fs.readFile('archivo.txt', 'utf8', function(err, data) {
    if (err) throw err;
    console.log(data);
});

Conclusión

El concepto de callback es una piedra angular en la programación moderna, especialmente en entornos que requieren operaciones asíncronas y manejo de eventos. Permite escribir código modular, eficiente y reactivo.

Aunque los callbacks pueden complicar la legibilidad en casos muy anidados, entender su funcionamiento es clave para luego aprender técnicas más avanzadas de manejo asíncrono, como Promises y async/await.

Dominar el uso de callbacks mejora tu capacidad para desarrollar aplicaciones interactivas, eficientes y adaptadas a las necesidades actuales del software.

Comparte este Post:

Posts Relacionados

Cuando proteger el futuro cuesta energía

La seguridad cuántica tiene un precio. Y no hablamos de dinero, sino de vatios, bytes y grados Celsius. Mientras los titulares celebran la llegada de algoritmos «inmunes» a la computación cuántica, casi nadie se pregunta cuánto le costará físicamente al planeta y a nuestras baterías defender el internet del mañana.

Ver Blog »

How much does AI really cost the planet?

A joke has been making the rounds in tech circles: “AI lives in the cloud.” It’s funny because it sounds weightless—like a software miracle floating above the messy realities of the world. But the “cloud” is not a metaphor. It is steel, concrete, copper, millions of chips, and data centers

Ver Blog »

Side-channel attacks en sistemas de monitorización climática

Vulnerabilidades de side-channel attacks en la Infraestructura Global de Monitorización Climática: Análisis de seguridad física y ciberresiliencia. Hoy en día, la monitorización del cambio climático es una prioridad a nivel científico y geopolítico que depende de la precisión e integridad de los datos recolectados en tiempo real. La transición de

Ver Blog »

¿La IA salvadora? O maquillando el problema

¿Por qué esperamos a escuchar que algo malo está a punto de suceder para preocuparnos y cuestionarnos si debemos actuar? Constantemente escuchamos hablar del cambio climático, de deshielos, de inundaciones. Y si todo esto está sucediendo, ¿realmente nos interesa? ¿O creemos que, como no nos afecta directamente, podemos posponer la

Ver Blog »

El hogar sostenible del futuro

La inteligencia artificial está transformando nuestra manera de vivir El cambio climático y el crecimiento acelerado de las ciudades han convertido al hogar en uno de los principales focos de consumo energético y generación de emisiones contaminantes. Actualmente, una parte significativa de la energía mundial se consume en viviendas, lo

Ver Blog »

Character Set

En el desarrollo de software trabajamos constantemente con texto: nombres de usuarios, mensajes, datos importados, logs, comunicación entre servicios… y detrás de todo ese texto existe un concepto fundamental que a menudo pasa desapercibido: el character set o conjunto de caracteres. Si los character codes representan “cómo se codifica un

Ver Blog »

Déjanos tus datos, nosotros te llamamos

Leave us your details and we will send you the program link.

Déjanos tus datos y 
te enviaremos el link del white paper

Déjanos tus datos y 
te enviaremos el link de la revista

Déjanos tus datos y 
te enviaremos el link del programa