Skip to main content

Promise Throttle

SENIOR

Promise Throttle

Створіть обгортку throttle для асинхронних функцій з часовим обмеженням швидкості.

Вимоги:

  • Реалізувати throttleAsync, яка обгортає асинхронну функцію
  • Забезпечити виконання функції максимум раз на interval мілісекунд
  • Поставити в чергу виклики, що відбуваються під час охолодження
  • Виконати виклики з черги після закінчення охолодження
  • Підтримати скасування викликів з черги

Приклад:

const apiCall = async (data) => {
  return `Processed: ${data}`;
};

const throttled = throttleAsync(apiCall, 1000);

throttled('A'); // Виконується негайно
throttled('B'); // В черзі, виконується через 1с
throttled('C'); // В черзі, виконується через 2с

Examples:

Input 1:{"interval":100,"calls":[1,2,3]}
Output 1:[2,4,6]

Loading editor...

Run your code to see results

Click the Run button above