它在这里
这样用
npm install ithrottle
let debounce=require(ithrottle).debounce;
let throttle=require(ithrottle).throttle;
debounce
每指定时间 t 内的再次调用会促使函数再次延长 t 后执行。

情景举例01:
在进行文本框输入的同时,通常会要求对输入的内容进行校验,并即时将检验结果反馈给用户。每录入一个字符都校验,是不必要的,因为用户很可能还要继续录入。那么在用户停止录入1秒后执行验证吧。
let fn=debounce(yourValidateFn,1000);
inputEl.addEventListener("input",fn);
情景举例02:

let fn=debounce(yourSearchFn,3000,{immediate:true});
searchBtn.addEventListener("click",fn);
throttle
触发函数的频率很高,但又希望函数以固定的较慢的节奏来执行。

情景举例03:

let fn=throttle(yourMoveFn,50);
document.body.onmousemove=()=>fn;
情景举例04:

let fn=throttle(yourGetVerifyCodeFn,60*1000,{immediate:true,leave:true});
btn.on("click",fn);
扩展
-
使用
promise参数得到函数执行后的结果;let fn=throttle(()=>"foo"),100,{promise:true}); //fn是一个Promise对象 fn().then((returnValue)=>console.log(returnValue)); -
使用方法
clear放弃执行函数;let fn=throttle(actionFn,100); fn();//actionFn会在100ms后执行 fn.clear()//放弃执行的actionFn
最后那么:
加个星吧:
github.com/imsasa/ithr…