Я просматриваю массив продуктов, затем для каждого продукта я получаю данные из API (я не контролирую его). После сбора данных по всем продуктам я сохраняю их в файле (который затем будет импортирован позже).
let dataToStore = [];
let requests = products.map((product) => {
axios('https://localhost:4000/getProduct/' + product.id).then((data) => {
dataToStore.push({ product: data.response });
}, 1000);
});
Promise.all(requests)
.then(() => {
saveDataInFile(dataToStore, filename);
})
.catch(function (err) {
console.error("Promise.all error", err);
});
Меня беспокоит, что иногда может быть более 1000 продуктов, что означает 1000 запросы и иногда получаю адрес, который не найден, и я потенциально могу замедлить работу веб-сайта.
Я хотел бы установить тайм-аут между запросами, но не знаю, как это сделать с помощью Promises здесь.
Я пытался обернуть запрос ax ios в setTimeout, но затем вызывается saveDataInFile до того, как все будет сделано.