UNPKG

qoopido.nucleus

Version:

Lightweight, atomic and modular JavaScript utility library that strongly encourages the creation and usage of small yet flexible, reusable and easily maintainable modules.

35 lines (25 loc) 654 B
(function(setTimeout) { 'use strict'; function definition() { return function functionDebounce(fn, delay, immediate) { var timeout; function debounced() { var context = this, parameter = arguments, call = immediate && !timeout; function execute() { debounced.cancel(); !immediate && fn.apply(context, parameter); } debounced.cancel(); timeout = setTimeout(execute, parseInt(delay, 10) || 200); call && fn.apply(context, parameter); } debounced.cancel = function() { timeout = clearTimeout(timeout); }; return debounced; }; } provide(definition); }(setTimeout));