27 lines
370 B
JavaScript

'use strict';
function debounce(fn, delay) {
var timeout;
var args;
var self;
return function () {
self = this;
args = arguments;
clear();
timeout = setTimeout(run, delay);
};
function run() {
clear();
fn.apply(self, args);
}
function clear() {
clearTimeout(timeout);
timeout = null;
}
}
module.exports = debounce;