当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Lodash _.throttle()用法及代码示例


Lodash是一个JavaScript库,可在underscore.js之上运行。 Lodash帮助处理数组,字符串,对象,数字等。

lodash中的_.throttle()方法用于创建一个受限制的函数,该函数每个等待毫秒最多只能调用一次func参数。这里的节流函数具有一个cancel方法,该方法用于取消已延迟的函数调用,还具有flush方法,该方法用于立即调用该延迟的函数。此外,它提供了一些选项,这些选项用于暗示是否应在等待超时的前沿和/或后沿调用声明的函数。

用法:

_.throttle(func, wait, options)

参数:该方法接受上述和以下所述的三个参数:

  • func:这是要限制的函数。
  • wait:它是要限制调用的毫秒数。
  • options:它是选项对象。
    • options.lead:它定义了超时前沿上的调用。
    • options.trailing:它在超时的后沿定义调用。

返回值:此方法返回新的限制函数。



注意:

  • 在这里,func会被调用给最后被限制的函数。但是,对节流函数的后续调用将返回上一个func调用的结果。
  • 在此,如果前导和尾随选项为true,则当且仅当在整个等待超时中多次调用受限制的函数时,才会在超时的后沿调用func。
  • 在此,如果等待时间为0,且前导选项为false,则func调用将延迟到下一个刻度。

范例1:

Javascript

// Requiring lodash library 
const _ = require('lodash'); 
  
// Calling throttle() method with its parameter 
var throt_fun = _.throttle(function () { 
        console.log('Function throttled after 1000ms!'); 
    }, 1000); 
  
throt_fun();

输出:在这里,在1000ms之后调节函数后,这里的等待时间是1000ms。

Function throttled after 1000ms!

范例2:

Javascript

// Requiring lodash library 
const _ = require('lodash'); 
  
// Calling throttle() method with its parameter 
var throt_fun = _.throttle(function() { 
        console.log('Function throttled after 1000ms!'); 
    }, 1000); 
  
// Defining loop 
var loop = function() { 
    setTimeout(loop, 5) 
    throt_fun(); 
}; 
  
// Calling loop to start 
loop();

输出:因此,直到您手动停止循环,循环才会停止。

Function throttled after 1000ms!
Function throttled after 1000ms!
Function throttled after 1000ms!
Function throttled after 1000ms!
Function throttled after 1000ms!
Function throttled after 1000ms!
.
.
.
.
// So on until you stop it manually.

范例3:在此,该函数在超时的后沿被调用。

Javascript

// Requiring lodash library 
const _ = require('lodash'); 
  
// Calling throttle() method with its parameter 
var throt_fun = _.throttle(function () { 
    console.log('Function is called on the'
        + ' trailing edge of the timeout '
        + 'and throttled after 2000ms!'); 
    }, 2000, { 'trailing':true }); 
  
throt_fun();

输出:

Function is called on the trailing edge of the 
timeout and throttled after 2000ms!

参考:https://lodash.com/docs/4.17.15#throttle

相关用法


注:本文由纯净天空筛选整理自nidhi1352singh大神的英文原创作品 Lodash _.throttle() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。