Добрый день.
Есть определенный код который получает данные через API стороннего сервиса. Но после нескольких выполнений, случаются зависания при получении данных, соответственно отваливается по таймауту.
Если руками пройти по ссылке на которой зависло, то все отрабатывает должным образом.
Также на малом количестве запросов отрабатывает должным образом, но как количество переходит примерно за 300-400, то порой начинаются подвисания.
Как избавиться от подвисаний и получить полные данные?
let result = await Promise.allSettled(promises);
return result
.filter((p) => {
console.log(p);
return p.status === 'fulfilled' && p.value.stringencyData !== undefined;
})
.map((e) => {
const { stringencyData } = e.value;
return {
dateValue: stringencyData.date_value,
countryCode: stringencyData.country_code,
stringencyActual: stringencyData.stringency_actual,
...stringencyData,
};
});
Переменная promises заполняется вот так:
async function getData(alpha, date) {
let res, json;
try {
res = await fetch(`https://covidtrackerapi.bsg.ox.ac.uk/api/v2/stringency/actions/${alpha}/${date}`, {
timeout: 200000,
});
} catch (err) {
console.log(err);
}
try {
json = await res.json();
} catch (err) {
console.log(err);
}
return json;
}