UNPKG

@squirrel-forge/ui-util

Version:

A collection of utilities, classes, functions and abstracts made for the browser and babel compatible.

24 lines (22 loc) 617 B
/** * @callback DebounceEventHandler * @param {Event} event - Event object * @return {void} */ /** * Debounce event * @param {Function|DebounceEventHandler} func - Event handler * @param {null|number} delay - Debounce delay, default: 350 * @return {function(*=): void} - Wrapped callback */ export function debounce( func, delay = null ) { delay = typeof delay === 'number' ? delay : 350; let timer = 0; return function( event ) { if ( timer ) { window.clearTimeout( timer ); timer = 0; } timer = window.setTimeout( func, delay, event ); }; }