m-gantt-chart
Version:
display gantt-like vaule,like use this to order bus schedule.
27 lines (26 loc) • 814 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);
};
}