Throttle для Promise
СложнаяРеализуйте throttleAsync(fn, delay) - throttle для async функций.
Что такое throttle?
Паттерн, который ограничивает частоту вызовов функции - она может выполниться максимум 1 раз в delay миллисекунд. Отличается от debounce тем, что выполняется сразу, а не откладывается.
Разница с debounce:
- debounce: ждёт тишины (паузы в вызовах) → используется для поиска при вводе
- throttle: выполняется сразу, но не чаще чем раз в N мс → используется для scroll, resize событий
Требования:
- Первый вызов выполняется сразу
- Следующие вызовы игнорируются, пока не пройдёт delay мс
- После delay мс можно снова вызвать
Пример:
const logScroll = throttleAsync(async () => {
console.log('scroll position:', window.scrollY);
}, 1000);
window.addEventListener('scroll', logScroll);
// При скролле будет логироваться максимум раз в секундуJavaScript•UTF-8
Run your code to see results.
Click the Run button above
Mobile view - please use desktop for better experience