它在這裡
這樣用
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…