Краткая напоминалка:
- Debounce - функция выполнится через 2 секунды после того, как пользователь перестал скроллить страницу
- Throttle - функция будет выполняться каждые 2 секунды пока пользователь скроллит
- Queue - поставить все функции скролла в очередь с промежутком 2 секунды
Пример кода, который мне понравился (Но там нет typescript и функция в debounce не принимает в себя параметры):
https://medium.com/ghostcoder/debounce-vs-throttle-vs-queue-execution-bcde259768
Более удачные примеры стоит посмотреть в Lodash или в библиотеках кастомных хуков для React (вроде useDebounce или всё вместе в https://usehooks.com/)
Моё видео на YouTube - Обзор функций Debounce, Throttle и Queue в JavaScript. Примеры кода.