Clase de temporizador de tiempo de espera de Node.js

El módulo de temporizador se utiliza para programar funciones que se llamarán en algún período de tiempo futuro. Es una API global. Por lo tanto, no es necesario importar (requerir («temporizadores»)) para usarla.

Timeout Class tiene un objeto ( setTimeout()/setInterval() ) que se crea internamente para las acciones programadas, y ( clearTimeout()/clearInterval() ) se puede pasar para cancelar esas acciones programadas. Cuando se programa un tiempo de espera, de forma predeterminada, el bucle de eventos de Node.js continuará ejecutándose hasta que se llame a clearTimeout() . El método setTimeout() devuelve objetos de tiempo de espera que se utilizan para controlar este comportamiento predeterminado, exporta las funciones timeout.ref() y timeout.unref() .

Los cuatro objetos de clase de tiempo de espera se definen a continuación: 

1. timeout.hasRef(): (Agregado en v11.0.0) Este objeto de tiempo de espera mantiene activo el bucle de eventos hasta que se devuelve ‘Verdadero’ si se devuelve ‘falso’ interrumpe el bucle de eventos.

Sintaxis:

tiempo de espera.hasRef()

Valor devuelto < booleano > : este objeto de tiempo de espera mantiene activo el bucle de eventos si se devuelve ‘Verdadero’.

2. timeout.ref(): (Agregado en v9.7.0) Cuando Timeout está activo y ( timeout.ref() ) llamado, solicita que el bucle de eventos de Node.js no haya salido por tanto tiempo. De todos modos, llamar a este Método varias veces no tiene ningún efecto.

Sintaxis:

tiempo de espera.ref()

Return Value < Timeout >: Devuelve una referencia de tiempo de espera.

3. timeout.refresh() ( agregado en v10.2.0) : este método actualiza el temporizador sin asignar un nuevo objeto JavaScript. La hora de inicio del temporizador se establece en la hora actual, y el temporizador se reprograma desde la duración especificada anteriormente a la hora actual llamando a su devolución de llamada. Al usar timeout.refresh() en un temporizador que ya llamó a su devolución de llamada y luego reactiva el temporizador.

Sintaxis:

tiempo de espera.actualizar()

Return Value < Timeout > : Devuelve la referencia de tiempo de espera. 

4. timeout.unref() (agregado en v9.7.0) Cuando el tiempo de espera está activo, no requiere que el bucle de eventos de Node.js permanezca activo. La devolución de llamada del objeto Timeout se invoca después de que el proceso sale si alguna otra actividad mantiene el bucle de eventos en ejecución. De todos modos, llamar a este Método también varias veces no tiene ningún efecto.

Sintaxis:

tiempo de espera.unref()

Return Value < Timeout > : Devuelve la referencia de tiempo de espera.

Ejemplo: Nombre de archivo: index.js 

Javascript

// Node.js program to demonstrate the
// Timeout Class methods
 
// Setting Timeout by setTimeout Method
var Timeout = setTimeout(function alfa() {
    console.log("0.> Setting Timeout", 12);
});
 
// Printing Timeout.hasRef method
console.log("1 =>", Timeout.hasRef());
// returns true
 
// Printing Timeout.ref before unref
console.log("2 =>", Timeout.ref());
Timeout.unref()
Timeout.ref()
// Returns timer reference
 
// Printing Timeout.refresh before unref
console.log("3 =>", Timeout.refresh());
// Returns timer reference
 
// Printing Timeout.unref method
console.log("4 =>", Timeout.unref());
// Returns Timeout reference and sets
// hasRef to false
 
// Printing Timeout.hasRef before unref
console.log("5 =>", Timeout.hasRef());
// Returns false
 
// Clears setInterval Timeout
clearTimeout(Timeout);
// Prints after clearing Timeout
 
console.log("6 => Printing after clearing Timeout");

Ejecute el archivo index.js con el siguiente comando:

node index.js

Producción:

1 => verdadero 
2 => Tiempo de espera { 
_idleTimeout: 1, 
_idlePrev: [TimersList], 
_idleNext: [TimersList], 
_idleStart: 52, 
_onTimeout: [Función: alfa], 
_timerArgs: indefinido, 
_repeat: null, 
_destroyed: false, 
[ Symbol(refed)]: true, 
[Symbol(asyncId)]: 2, 
[Symbol(triggerId)]: 1 

3 => Timeout { 
_idleTimeout: 1, 
_idlePrev: [TimersList], 
_idleNext: [TimersList], 
_idleStart: 87 , 
_onTimeout: [Función: alfa], 
_timerArgs: indefinido, 
_repeat: nulo, 
_destroyed: false, 
[Symbol(refed)]: true, 
[Symbol(asyncId)]: 2, 
[Symbol(triggerId)]: 1 

4 => Tiempo de espera { 
_idleTimeout: 1, 
_idlePrev: [TimersList], 
_idleNext: [TimersList], 
_idleStart: 87, 
_onTimeout: [Función: alfa], 
_timerArgs: indefinido, 
_repeat: null, 
_destroyed: false, 
[Symbol(refed )]: false, 
[Symbol(asyncId)]: 2, 
[Symbol(triggerId)]: 1 

5 => false 
6 => Impresión después de borrar el tiempo de espera 
 

Referencia: https://nodejs.org/api/timers.html#timers_class_timeout

Publicación traducida automáticamente

Artículo escrito por amitkumarjee 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 *