funciones-temporales-nodejs

Funciones temporales y timers en Node.js

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 github-full