Задержка между HTTP-запросами в цикле - PullRequest
0 голосов
/ 10 июля 2020

Я просматриваю массив продуктов, затем для каждого продукта я получаю данные из 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 до того, как все будет сделано.

...