title: How to start an anonymous asynchronous function in Angular 2/4?
body: <p>In my Angular 4 component I have a sort method. It's really just as simple as clicking the header of a table and changing the sort order by that column, and ascending/descending. However, there is a call to a service in there which could eventually become quite expensive, so I'm trying to make this call asynchronous. Example:</p>
  
  <pre><code>sortColumn(): void {
      this.service.someExpensiveBlockingOperation();
      this.sortOrder = !this.sortOrder;
      this.data.sort((a, b) =&gt; { ... });
  }
  </code></pre>
  
  <p>I've tried messing with Promises and Observables, as well as Async / Await but without success. I feel like I'm missing something as JS is supposedly a non-blocking, asynchronous driven language.</p>