Как реализовать функцию throttle?

Junior
313 просмотров
AFK Offer AI

function throttle(fn, limit) { let inThrottle; return function(...args) { if (!inThrottle) { fn.apply(this, args); inThrottle = true; setTimeout(() => inThrottle = false, limit); } }; }. Функция вызывается максимум раз в limit мс. Альтернативная реализация с lastTime: запоминаешь время последнего вызова, вызываешь только если прошло достаточно времени. Trailing вариант: если вызов пропущен — выполнить последний после таймаута. Используется для scroll, resize, mousemove обработчиков.

Следующий вопрос

Какие фичи появились в React 18?