title: JavaScript array .reduce with async/await
body: <p>Seem to be having some issues incorporating async/await with .reduce(), like so:</p>
  
  <pre><code>const data = await bodies.reduce(async(accum, current, index) =&gt; {
    const methodName = methods[index]
    const method = this[methodName]
    if (methodName == 'foo') {
      current.cover = await this.store(current.cover, id)
      console.log(current)
      return {
        ...accum,
        ...current
      }
    }
    return {
      ...accum,
      ...method(current.data)
    }
  }, {})
  console.log(data)
  </code></pre>
  
  <p>The <code>data</code> object is logged <em>before</em> the <code>this.store</code> completes...</p>
  
  <p>I know you can utilise <code>Promise.all</code> with async loops, but does that apply to <code>.reduce()</code>?</p>