Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | 54x 1143x 1143x 1143x 8x 8x 8x 1143x 1143x 1143x 1143x 54x 54x | // Returns a function, that, as long as it continues to be invoked, will not // be triggered. The function will be called after it stops being called for // N milliseconds. If `immediate` is passed, trigger the function on the // leading edge, instead of the trailing. // The callback function returned is assigned a clearDebounceTimeout function // that provides for clearing the timeout/debounced function so that it is not called. function debounce(func, wait, immediate) { var timeout; const callback = function () { var context = this, args = arguments; var later = function () { timeout = null; if (!immediate) { func.apply(context, args); } }; var callNow = immediate && !timeout; clearTimeout(timeout); timeout = setTimeout(later, wait); Iif (callNow) { func.apply(context, args); } }; callback.clearDebounceTimeout = () => { clearTimeout(timeout); timeout = null; }; return callback; } export default debounce; |