title: Async function order of execution
body: <p>I have an async function that is written like:</p>
  
  <pre><code>pool.query(`select id from table1`)
    .then(rows=&gt;{
      pool.query(`selectQuery1`)
        .then(rows=&gt;{
          return pool.query(`selectQuery2`)
        })
      .then(rows=&gt;{
        console.log('First')
        return pool.query(`selectQuery3`)
      })
    })
    .then(rows=&gt;{
      console.log('Second')
      return pool.query(`selectQuery4`)
    })
  </code></pre>
  
  <p>I was thinking that the final <code>.then</code> should fire after everything else. But the <code>console.log</code> shows </p>
  
  <pre><code>second
  first 
  </code></pre>
  
  <p>I do not understand why this is happening</p>