title: javascript: async / await – propagation required the entire call chain up?
body: <p>I am wrapping a function returning a promises into an <code>async</code> function on a small helper function...</p>
  
  <pre><code>trash(filesArray, {
      glob: false
  })
  .then(() =&gt; {
      resolve(true);
  }).catch((err) =&gt;  {
      return err;
  })
  </code></pre>
  
  <p>…because I like to use it synchronous using the <code>await</code> on the next-higher level:</p>
  
  <pre><code>async empty(liveMode, force) {
      …
      await helpers.trashSync(trashFiles);
      // then doing further stuff...
  }
  </code></pre>
  
  <p>Of course, this means, that I need to use the <code>async</code> keyword again... (otherwise I am told <code>await</code> is an ‘unknown reserved’ word or such) and if I am not mistaken, I will now need to use <code>await</code> again on the next-higher level?</p>
  
  <pre><code>await memberSet.empty(true, false)
  </code></pre>
  
  <p><strong>Does this “game” continue all the way up and throughout my application, so by the end, I have plenty of <code>async</code>/<code>await</code>'s wherever there's a tiny async function contained?</strong></p>
  
  <p><strong>Or am I simply missing the point where to stop?</strong></p>