https://lodash.com/docs#debounce函數
throttle
(又稱節流)和debounce
(又稱防抖)其實都是函數調用頻率的控制器code
throttle
:將一個函數的調用頻率限制在必定閾值內,例如 1s 內一個函數不能被調用兩次。get
debounce
:當調用函數n秒後,纔會執行該動做,若在這n秒內又調用該函數則將取消前一次並從新計算執行時間,舉個簡單的例子,咱們要根據用戶輸入作suggest,每當用戶按下鍵盤的時候均可以取消前一次,而且只關心最後一次輸入的時間就好了。it
lodash
對這兩個函數又增長了一些參數,主要是如下三個:配置
leading,函數在每一個等待時延的開始被調用lodash
trailing,函數在每一個等待時延的結束被調用di
maxwait(debounce纔有的配置),最大的等待時間,由於若是 debounce
的函數調用時間不知足條件,可能永遠都沒法觸發,所以增長了這個配置,保證大於一段時間後必定能執行一次函數時間