title: When to use waitForAsync in angular
body: <p>From documentation we can read:</p>
  <p><code>waitForAsync(fn: Function): (done: any) =&gt; any</code></p>
  <blockquote>
  <p>Wraps a test function in an asynchronous test zone. The test will
  automatically complete when all asynchronous calls within this zone
  are done. Can be used to wrap an inject call.</p>
  </blockquote>
  <p>I could not understand, when to use <code>waitForAsync</code> function? What's the difference between <code>waitForAsync</code> vs (<code>async</code> or <code>fakeAsync</code>)?</p>