@shopgate/engage
Version:
Shopgate's ENGAGE library.
11 lines • 862 B
JavaScript
// Corresponds to 10 frames at 60 Hz.
// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.
/**
* Corresponds to 10 frames at 60 Hz.
* A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.
* @param {Function} func function
* @param {number} wait wait time
* @returns {Function}
*/export default function debounce(func){var wait=arguments.length>1&&arguments[1]!==undefined?arguments[1]:166;var timeout;// eslint-disable-next-line require-jsdoc
function debounced(){var _this=this;for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}// eslint-disable-next-line require-jsdoc
var later=function later(){func.apply(_this,args);};clearTimeout(timeout);timeout=setTimeout(later,wait);}debounced.clear=function(){clearTimeout(timeout);};return debounced;}