title: Multiple api calls in loop fails
body: <p>Having some issues when calling an external api to fetch information inside a loop in my node/express backend. I need information I get from the loop to get the correct data back from the endpoint. When I loop through the data and make the call I get this error.</p>
  <pre><code>{ message: 'Too Many Requests Limit 30. Reset time 1594218437315',
    status: 429 }
  </code></pre>
  <p>I get the correct data back sometimes and sometimes only this message. There will be about 10 000 or so calls I need to make. I've tried a multiple of throttling libs and a lot of the code here on SO but it's pretty much always the same result which is the error message or it doesnt work at all.</p>
  <p>I think I need a way send about 20-30 requests at a time and then wait a second or so and then continue. Or is there another better way? How would I achieve this?</p>
  <pre><code> const product = await NewProduct.find({});
    product.map((item, index) =&gt; {
      item.stores.map(async inner =&gt; {
        inner.trackingUrl = await fetchRetry(inner.programId, inner.productUrl)
      })
    })
  
  
  async function fetchRetry(id, urlToTrack) {
  
    url1 = 'https://api.adtraction.com/v2/affiliate/tracking/link/?token=token';
    const data = {
      channelId,
      programId: id,
      shortLink: true,
      url: urlToTrack
    };
  
    const options = {
      method: 'POST',
      headers: {
        'Content-type': 'application/json',
        Accept: 'application/json',
        'Accept-Charset': 'utf-8',
      },
      body: JSON.stringify(data),
    };
  
    const res = await fetch(url, {
      method: 'POST',
      headers: {
        'Content-type': 'application/json',
        Accept: 'application/json',
        'Accept-Charset': 'utf-8',
      },
      body: JSON.stringify(data),
    });
    const json = await res.json();
    console.log(json) // Error
    return json.trackingUrl;
  
  }
  </code></pre>