Módulo de temporizadores de Node.js

El módulo Timers en Node.js contiene varias funciones que nos permiten ejecutar un bloque de código o una función después de un período de tiempo establecido. El módulo Timers es global, no necesitamos usar require() para importarlo.

El módulo de temporizadores tiene las siguientes funciones:

  1. Temporizadores de programación: se utiliza para llamar a una función después de un período de tiempo establecido.
    • establecerInmediato()
    • establecerIntervalo()
    • establecerTiempo de espera()
  2. Cancelación de temporizadores: se utiliza para cancelar el temporizador programado.
    • borrarInmediato()
    • borrarIntervalo()
    • borrar tiempo de espera()

1. Método setImmediate(): programa la ejecución “inmediata” de la devolución de llamada después de las devoluciones de llamada de eventos de E/S. En el siguiente ejemplo, se llaman varias funciones setImmediate. Cada vez que hacemos, estas funciones de devolución de llamada se ponen en cola para su ejecución en el orden en que se crean. Toda la cola de devolución de llamada se procesa después de cada iteración del bucle de eventos. Si un temporizador inmediato se pone en cola desde dentro de una devolución de llamada en ejecución, ese temporizador no se activará hasta la siguiente iteración del bucle de eventos.

setImmediate(function A() {
    setImmediate(function B() {
      console.log(1);
      setImmediate(function D() { 
        console.log(2);
      });
    });
  
    setImmediate(function C() {
      console.log(3);
      setImmediate(function E() { 
        console.log(4);
      });
    });
});
  
console.log('Started...');

Producción:

Started...
1
3
2
4

En el ejemplo anterior, en la primera iteración del bucle de eventos, se activa la función A. Luego, en la segunda iteración, se activa la función B y C en la tercera iteración. De manera similar, las funciones D y E se activan en la cuarta y quinta iteración, respectivamente.

2. Método setInterval(): Repite la ejecución de la devolución de llamada después de cada t tiempo en milisegundos pasado como parámetro.

// Executed after every 1000 milliseconds
// from the start of the program
setInterval(function A() {
    return console.log('Hello World!');
}, 1000);
  
// Executed right away
console.log('Executed before A...');

Producción:

Executed before A...
Hello World!
Hello World!
Hello World!
Hello World!
Hello World!
...

3. Método setTimeout(): Programa la ejecución de la devolución de llamada después de un cierto tiempo en milisegundos que se pasa como parámetro.

// Executed after 3000 milliseconds 
// from the start of the program
setTimeout(function A() {
    return console.log('Hello World!');
}, 3000);
  
// executed right away
console.log('Executed before A...');

Producción:

Executed before A...
Hello World!

4. Método clearImmediate(): Se utiliza simplemente para cancelar el objeto Inmediato creado por el método setImmediate().

var si = setImmediate(function A() {
    console.log(1);
});
  
// clears setInterval si
clearImmediate(si);
  
console.log(2);

Producción:

2

5. Método clearInterval(): Se utiliza para cancelar el objeto Inmediato creado por el método setInterval().

var si = setInterval(function A() {
    return console.log("Hello World!");
}, 500);
  
setTimeout(function() {
    clearInterval(si);
}, 2000);

clearInterval() borra setInterval ‘si’ después de 500 ms, luego la función A se ejecuta cuatro veces.

Producción:

Hello World!
Hello World!
Hello World!
Hello World!

6. Método clearTimeout(): Se utiliza para cancelar el objeto Inmediato creado por el método setTimeout().

// si1 is cleared by clearTimeout()
var si1 = setTimeout(function A() {
    return console.log("Hello World!");
}, 3000);
  
// only si2 is executed
var si2 = setTimeout(function B() {
    return console.log("Hello Geeks!");
}, 3000);
  
clearTimeout(si1);

Solo se ejecuta setInterval ‘si2’ ya que ‘si1’ se borra con el método clearTimeout().
Producción:

Hello Geeks!

Publicación traducida automáticamente

Artículo escrito por parasmadan15 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *