title: Calling multiple async calls in a loop not working as expected
body: <p>I am mapping though an array and then calling three async calls that return the parameter information to make another call. I want the code to take one account at a time and go through each async call before continuing to the next account in the array. The problem is right now the code is running all accounts through the first async call then moves to the second async call runs all the accounts through and the same for the third. Here is what I have tried so far:</p>
  
  <pre><code>const request = require('request')
  const delay = (ms) =&gt; {
    return new Promise((resolve) =&gt; {
      setTimeout(resolve, ms)
    })
  }
  
  async function report(){
    let accounts = await getAccountsForTimezone('Eastern Time (US &amp; Canada)');
    const promises = accounts.map((account) =&gt; {
        return new Promise(async (resolve, reject) =&gt; {
          await delay(1000)  
          const param1 = await scope1(account)
          const param2 = await scope2(account)
          const param3 = await scope3(account)
          const response = insertData(param1, param2, param3).catch(reject)
          resolve(response)
       })
    })
  };
  </code></pre>
  
  <p>I also tried:</p>
  
  <pre><code>async function report(){
    let accounts = await getAccountsForTimezone('Eastern Time (US &amp; Canada)');
    const promises = accounts.map((account) =&gt; {
        return new Promise(async (resolve, reject) =&gt; {
          await delay(1000)
          const reults = Promise.all([await scope1(account), await scope2.apply(account), scope3.apply(account)])
  
          const response = insertData(param1, param2, param3).catch(reject)
          resolve(response)
       })
    })
  };
  </code></pre>
  
  <blockquote>
    <p>I expect the loop to look like: Account 1
    ->param1
    ->param2
    ->param3</p>
    
    <p>Account 2
    ->param1
    ->param2
    ->param3</p>
    
    <p>Instead I get: Account 1
    ->param1 Account 2
    ->param1</p>
    
    <p>Account 1
    ->param2 Account 2
    ->param2</p>
    
    <p>Account 1
    ->param3 Account 2
    ->param3</p>
  </blockquote>