Método Lodash _.debounce()

Lodash es una biblioteca de JavaScript que funciona en la parte superior de underscore.js. Lodash ayuda a trabajar con arrays, strings, objetos, números, etc.

El método _.debounce() de Function en lodash se usa para crear una función antirrebote que retrasa la función dada hasta después de que haya pasado el tiempo de espera indicado en milisegundos desde la última vez que se llamó a esta función antirrebote. La función antirrebote tiene un método de cancelación que se puede usar para cancelar las llamadas de función que están retrasadas y un método de vaciado que se usa para llamar inmediatamente a la función retrasada . 

También proporciona algunas opciones que se pueden usar para indicar si la función indicada debe llamarse en el borde inicial y/o final del tiempo de espera.

Nota:

  • La función se llama con los últimos argumentos que se le dan a la función rebotada. Sin embargo, las llamadas posteriores a la función de rebote devuelven el resultado de la última llamada a la función .
  • Cuando las opciones inicial y final son verdaderas, entonces se llama a func en el borde final del tiempo de espera si y solo si la función antirrebote se llama más de una vez durante el tiempo de espera.
  • Cuando el tiempo de espera es 0 y la opción inicial es falsa, la llamada a la función se difiere hasta el siguiente tick.

Sintaxis:

_.debounce( func, wait, options )

Parámetros: este método acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:

  • func: Es la función que tiene que ser rebotada.
  • wait: Es el número de milisegundos que se van a retrasar las llamadas. Es un parámetro opcional. El valor predeterminado es 0.
  • opciones: Es el objeto de opciones que se puede utilizar para cambiar el comportamiento del método. Es un parámetro opcional.

El objeto de opciones tiene los siguientes parámetros:

  • adelanto: Define la llamada en el flanco de adelanto del tiempo de espera. Es un parámetro opcional. El valor predeterminado es falso.
  • maxWait: Es el número máximo de tiempo que se permite retrasar la función antes de llamarla . Es un parámetro opcional.
  • trailing: Define la llamada en el borde posterior del tiempo de espera. Es un parámetro opcional. El valor por defecto es verdadero.

Valor devuelto: este método devuelve la nueva función rebotada.

Ejemplo 1: En este ejemplo, se puede ingresar REPL nuevamente en 1000m después de la llamada de función ya que el tiempo de espera es de 1000ms.

Javascript

// Requiring lodash library
const _ = require('lodash');
  
// Using _.debounce() method
// with its parameters
var debounce_fun = _.debounce(function () {
  console.log('Function debounced after 1000ms!');
  }, 1000);
  
debounce_fun();

Producción:

Function debounced after 1000ms!

Ejemplo 2: En este ejemplo, el bucle no se detiene hasta que se detiene manualmente.

Javascript

// Requiring lodash library
const _ = require('lodash');
  
// Using _.debounce() method
// with its parameters
var debounce_fun = _.debounce(function() {
  console.log('Function debounced after 1000ms!');
  }, 4, 1000, {'leading': false});
  
// Defining loop
var loop = function() {
    setTimeout(loop, 3)
    debounce_fun();
};
  
// Calling loop to start
loop();

Producción:

Function debounced after 1000ms!
Function debounced after 1000ms!
Function debounced after 1000ms!
Function debounced after 1000ms!
Function debounced after 1000ms!
Function debounced after 1000ms!
Function debounced after 1000ms!
Function debounced after 1000ms!
.
.
.
.
// Will go on unless stopped manually

Publicación traducida automáticamente

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