Ограничение числа запросов в секунду
У API сервиса стоит ограничение на 5 запросов в секунду, собственно вопрос как можно ограничить число запросов?
У меня есть json с 30 id, для каждого id нужно сделать запрос на API сервиса.
Перебираю json с помощью for...in
Для запроса использую fetch.
Ответы (1 шт):
Автор решения: Alexander Chernykh
→ Ссылка
Вар 1. Раз 5 запросов на секунду, то ты в секунду не можешь отсылать более 5 ID, а это значит что придётся делать после каждых 5-ти отправок ты должен выжидать нужный тайминг для сервера
Вар 2. Либо ты можешь отлавливать реджект от сервера - если после запроса тебя реджектнуло, то просто ждать одну секунду и пробовать снова.
Вар 3. Поищи в доках, можно ли делать запрос состоящий из массива ID
Вар 1
// Это решение не сильно универсальное, всё равно сервер может дать
// reject, даже выждав тайминг
ids.forEach(function (id, index) {
if (index+1 % 5 === 0) {
// ждём секунду
}
fetch(...);
});
Вар 2
// Это описано образно! На самом деле такое решение намного сложнее
ids.forEach(function (id, index) {
fetch(...).then(
...
).catch(
// ждём 1 секунду
);
});