v-gantt-fanuc
Version:
display gantt-like vaule,like use this to order bus schedule.
21 lines • 806 B
JavaScript
export default function throttle(fn, interval = 100) { //fn为要执行的函数,interval为延迟时间
var _self = fn, //保存需要被延迟执行的函数引用
timer, //定时器
firstTime = true; //是否第一次调用
return function() { //返回一个函数,形成闭包,持久化变量
var args = arguments, //缓存变量
_me = this;
if (firstTime) { //如果是第一次调用,不用延迟执行
_self.apply(_me, args);
return firstTime = false;
}
if (timer) { //如果定时器还在,说明上一次延迟执行还没有完成
return false;
}
timer = setTimeout(function() { //延迟一段时间执行
clearTimeout(timer);
timer = null;
_self.apply(_me, args);
}, interval);
}
}