En Node.js, las funciones temporales y timers nos permiten ejecutar funciones de forma asíncrona después de cierto tiempo o en intervalos regulares.
Estos temporizadores son fundamentales para tareas como ejecutar código después de un retraso, repetir acciones periódicamente o ejecutar código después de completar ciertas operaciones.
Algunos de ellos no son distintos de los que encontramos en una página web. Pero otros son específicos del ámbito de Node.js
Ejemplos de funciones temporales
setTimeout
El método setTimeout
se utiliza para ejecutar una función después de un cierto período de tiempo especificado, expresado en milisegundos.
const delay = 3000; // 3 segundos
const timeoutId = setTimeout(() => {
console.log('¡Han pasado 3 segundos!');
}, delay);
// Para cancelar el timeout antes de que se ejecute
// clearTimeout(timeoutId);
En este ejemplo, la función pasada como argumento se ejecutará después de 3 segundos.
setInterval
El método setInterval
se utiliza para ejecutar una función repetidamente cada cierto intervalo de tiempo especificado, también expresado en milisegundos
const intervalo = 2000; // 2 segundos
const intervalId = setInterval(() => {
console.log('¡Hola cada 2 segundos!');
}, intervalo);
// Para detener el intervalo después de cierto tiempo
/* setTimeout(() => {
clearInterval(intervalId);
}, 10000); */ // Detener después de 10 segundos
En este ejemplo, la función pasada como argumento se ejecutará cada 2 segundos.
Ejemplo combinado de setTimeout y clearInterval
En este ejemplo, utilizamos setInterval
para ejecutar una función cada segundo y detenerla después de 5 segundos:
let segundos = 0;
const intervalId = setInterval(() => {
segundos++;
console.log('Han pasado ' + segundos + ' segundos.');
if (segundos === 5) {
clearInterval(intervalId);
console.log('El intervalo se detuvo después de 5 segundos.');
}
}, 1000); // Cada segundo
setImmediate
El método setImmediate
se utiliza para ejecutar una función en el siguiente ciclo de eventos.
setImmediate(() => {
console.log('Esto se ejecuta en el siguiente ciclo de eventos.');
});
process.nextTick
El método process.nextTick
se utiliza para ejecutar una función al finalizar el ciclo actual de ejecución de JavaScript, pero antes de cualquier I/O o temporizadores. Por ejemplo:
process.nextTick(() => {
console.log('Esto se ejecuta al final del ciclo actual.');
});
Descarga el código
Todo el código de esta entrada está disponible para su descarga en Github