d-utils
Version:
d-utils
25 lines (24 loc) • 1.38 kB
JavaScript
/**
* d-utils version: 4.0.3
* by ifmiss
*/
;
/**
* @description 函数防抖
* @param { Function } fn 需要防抖的函数
* @param { Number } t 防抖时间,多久以后才能再执行 单位ms
* @param { Boolean } immediate true: 立刻执行方法且最后一次时间不执行, false: 等t时间之后再执行方法,如果t时间内执行,则在最后一次的t时间之后执行方法,类似动态搜索效果
* @example
* // 在鼠标resize的过程中,1秒以后可以被执行,如果在1秒内触发resize,则从新计算下一个一秒再允许执行
* window.onresize = debounce(function () {
* // es5 获取参数
* let arg = Array.prototype.slice.call(arguments)
* // es6 获取参数
* let arg1 = Array.from(arguments)
* console.log('resize-debounce', arg)
* console.log('resize-debounce', arg1)
* }, 1000)
*/
function e(e,t,o){var u;
// 立刻执行第一次该方法
if(void 0===o&&(o=!0),"function"==typeof e)return o?function(){clearTimeout(u),u||e.apply(this,arguments),u=setTimeout((function(){setTimeout(u),u=null}),t)}:function(){clearTimeout(u),u=setTimeout((function(){setTimeout(u),e.apply(this,arguments),u=null}),t)};console.error("第一个参数必须是方法","[d-utils] GenericUtils debounce error => ")}Object.defineProperty(exports,"__esModule",{value:!0}),exports.debounce=e,exports.default=e;