Простой Rate Limiter

Реализуйте функцию rateLimiter(fn, limit, ms), которая принимает:

  • fn — функцию, которую нужно вызывать;
  • limit — максимальное количество вызовов функции за указанный интервал времени;
  • ms — интервал времени в миллисекундах.

Функция должна возвращать новую обёртку, которая не позволит вызывать fn чаще, чем limit раз за ms.

Все лишние вызовы должны быть отклонены и возвращать строку "Rate limit exceeded".

Пример

function apiRequest(id) { return `Запрос ${id} выполнен`; } const limitedApi = rateLimiter(apiRequest, 2, 1000); console.log(limitedApi(1)); // "Запрос 1 выполнен" console.log(limitedApi(2)); // "Запрос 2 выполнен" console.log(limitedApi(3)); // "Rate limit exceeded" setTimeout(() => { console.log(limitedApi(4)); // "Запрос 4 выполнен" }, 1100);