Задержка debounce
/** * debounce decorator * @param {Function} func * @param {Number} ms * @see https://javascript.info/task/debounce */ function debounce(func, ms) { let timeout; return function() { clearTimeout(timeout); timeout = setTimeout(() => func.apply(this, arguments), ms); };}