这是一个简单的javascript 工具库,可以用来方便你控制函数执行的频率;
npm i https://github.com/imsasa/ithrottle.git
使函数原本不定时、频繁地调用转成按固定频率执行。
let throttle= require("ithrottle").throttle;
let foo = function () {
console.log("foo");
};
/**
* 函数foo的调用间隔时间为2000ms
*/
let wrapFoo = throttle(foo, 2000);
// wrapFoo每200ms会被调用一次,函数foo实际每2S才执行一次
setInterval( ()=>wrapFoo(), 200);
延迟执行函数,在指定的延迟时间内,再次调用函数会重新计算延迟时间。
let debounce= require("ithrottle").debounce;
let bar=function(){
console.log("bar");
console.log(Date.now()-startTime)
};
/**
* 函数bar延迟2000ms执行
*/
let wrapBar=debounce(bar,2000);
let startTime=Date.now();
wrapBar();
/**
* 1000ms后调用,bar会再等待2000毫秒执行
*/
setTimeout(wrapBar,1000);
- opt {Object|Number}
- {boolean} immediate=true ,为true则首次调用不delay;
- {boolean} leave=false ,为true则忽略指定延迟时间内的调用;
- {function} clear, 取消还末执行的函数。
与throttle相同