Domina el módulo timers de Node.js y controla el tiempo de ejecución con precisión: programa tareas, repítelas o cancélalas según el ciclo de vida de tu aplicación. Aquí verás cómo usar la API global de timers con ejemplos claros y código listo para copiar.
¿Qué resuelve el módulo timers en Node.js?
El módulo timers proporciona funciones globales para programar lógica por tiempo: ejecución única, repetición y siguiente iteración del bucle de eventos. A diferencia del navegador, en Node.js el flujo se integra con su ciclo de vida y el event loop.
Identificadores: cada timer devuelve un id que permite cancelarlo.
Observabilidad: imprimir la hora con console.log y Date ayuda a entender el orden real de ejecución.
¿Cómo programar y cancelar tareas con timers?
A continuación, una secuencia compacta que muestra programación por tiempo, repetición y cancelación. Observa el orden de impresión de mensajes y la hora para entender el flujo asíncrono.
¿Cómo usar setTimeout para una ejecución única?
Ejecuta una función una sola vez después de un retraso en milisegundos.
No se imprime de inmediato: espera el tiempo indicado.
console.log('hora actual:',newDate().toLocaleTimeString());const timeoutId =setTimeout(()=>{console.log('este mensaje aparece después de dos segundos.');},2000);
¿Qué hace setImmediate en la próxima iteración del bucle?
Programa la ejecución en la siguiente iteración del event loop.
Útil para diferir lógica sin esperar milisegundos específicos.
setImmediate(()=>{console.log('este mensaje aparece en la próxima iteración del bucle.');});
¿Cómo cancelar timers con clearInterval y clearTimeout?
Repite con setInterval y cancela con clearInterval usando su id.
Evita que un timeout ocurra con clearTimeout antes de que dispare.
// Repetición cada 3 segundos.const intervalId =setInterval(()=>{console.log('este mensaje aparece cada tres segundos.');},3000);// Cancelar el intervalo después de 10 segundos.setTimeout(()=>{console.log('cancelar el intervalo después de diez segundos.');clearInterval(intervalId);},10000);// Programar un timeout que nunca se mostrará.const willBeClearedId =setTimeout(()=>{console.log('este mensaje nunca aparecerá.');},10000);// Cancelar inmediatamente para que no llegue a ejecutarse.clearTimeout(willBeClearedId);console.log('hora final:',newDate().toLocaleTimeString());
¿Qué observar en el flujo de tiempo y el bucle de eventos?
Usar hora inicial y hora final facilita ver el orden real de ejecución y cómo interactúan los timers con el event loop.
La hora final puede imprimirse antes que mensajes programados: el flujo principal termina, luego corren los timers.
El mensaje de dos segundos aparece después del retraso: confirma la ejecución única de setTimeout.
El mensaje de la próxima iteración aparece casi de inmediato tras cargar el programa: comportamiento de setImmediate.
El intervalo se repite cada tres segundos hasta ser cancelado a los diez segundos: evidencia de clearInterval funcionando.
El timeout cancelado nunca se imprime: clearTimeout evita su ejecución futura.
Estos patrones permiten programar notificaciones, tareas diferidas y cancelaciones seguras según el estado de tu aplicación en Node.js.
¿Tienes dudas o un caso de uso con timers en Node.js? Cuéntalo y afinamos la estrategia juntos.