| 1234567891011121314151617181920212223242526272829303132 | 
    /**     * Debounce callback execution     */    function debounce(fn, threshold, isAsap){        var timeout, result;        function debounced(){            var args = arguments, context = this;            function delayed(){                if (! isAsap) {                    result = fn.apply(context, args);                }                timeout = null;            }            if (timeout) {                clearTimeout(timeout);            } else if (isAsap) {                result = fn.apply(context, args);            }            timeout = setTimeout(delayed, threshold);            return result;        }        debounced.cancel = function(){            clearTimeout(timeout);        };        return debounced;    }    module.exports = debounce;
 |