Как по шагам разобраться как работает throttle(Тормозилка) ?

Понимая как работает Event Loop, apply, не имея проблем с контекстом, не могу до конца понять, где я упустил что-то не до кокнца разобрал. Как Понимаю не совсем понимаю, как отрабатывает функция.
Ссылка на код с моими комментариями сижу уже часа три пытаюсь понять, что упустил:
https://codepen.io/PolyakhAlex/pen/NzRaom?editors=1010
Спасибо!

Функция throttle принимает аргументом другую функцию. Ту которую нужно тротлить func.
throttle возвращает новую функцию wrapper (и этот wrapper имеет ссылку на func). Эта новая функция wrapper вызывается на каждое событие, проверяет условия и принимает решение нужно ли вызвать func.

EventLoop здесь ни при чем.

1 лайк
`return wrapper; // почему при последующих вызовах мы суда не попадаем ?`

Потому что в обработчике вызывается функция, которая вернулась return wrapper. Т.е. вызывается тело функции wrapper.

1 лайк

Потому что в обработчике вызывается функция, которая вернулась return wrapper. Т.е. вызывается тело функции wrapper.

Вот как мог упустить это(
Спасибо!