title: How can i wait for multiple async calls?
body: <p>I have multiply async calls. For example four of them</p>
  <pre><code>this.lazyLoadData();
  this.lazyLoadData();
  this.lazyLoadData();
  this.lazyLoadData();
  </code></pre>
  <p>the problem is that every http request can take different time.
  In every request i am sending different query parameters to fetch paginated data on backend.</p>
  <p>So in this case the first <code>this.lazyLoadData</code> can finish sometimes  later then the second one -
  depending on the paginated results on the backend.</p>
  <p>So to prevent that behaviour i tried to use <code>async and await</code></p>
  <pre><code>await this.lazyLoadData();
  await this.lazyLoadData();
  await this.lazyLoadData();
  await this.lazyLoadData();
  
  </code></pre>
  <pre><code>async lazyLoadData(cb?) {
    const filtersParam: any = {
          page: this.filterService.dashboardPage,
          size: 25,
        }
  
        let response = await this.processMonitorService.monitoring(filtersParam);
        response.then(data =&gt; {
           console.log('maked http call');
        });
        ...
  }
  </code></pre>
  <p>but the problem is that still, even i use async and await - this four http calls does not happen in order.</p>
  <p>So in duration of one second i am calling four times <code>lazyLoadData</code>, i await every result there
  but responses does not come in order. So sometimes again third gets executed before the second one etc...</p>
  <p>How can i solve this ?</p>