title: Why should I use HttpClient over fetch?
body: <p>Angular 2+ introduces <code>HttpClient</code> which makes an HTTP request and sends them down an RxJS observable. My question is why would I choose to use <a href="https://angular.io/guide/http" rel="noreferrer"><code>HttpClient</code>'s API</a> over the standard <a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API" rel="noreferrer"><code>fetch</code></a> for making single HTTP requests?</p>
  
  <p>I'm familiar with RxJS and I understand this chart of <a href="https://youtu.be/sTSQlYX5DU0?t=6m39s" rel="noreferrer">"the four fundamental effects"</a>.</p>
  
  <pre><code>       | one        | many
  -------------------------------------
  sync   |  T         | Iterable&lt;T&gt;
  async  | Promise&lt;T&gt; | Observable&lt;T&gt;
  </code></pre>
  
  <p>Http requests are async and return one value. Why should that be a Observable? I understand wanting to compose a stream of events into a stream of HTTP <em>requests</em> but I don't understand why I would want to use a stream of just one HTTP <em>response</em>. Isn't that just like using an array when you only have one value?</p>
  
  <p>Am I missing something? In general, why should I use Angular's HttpClient? Where does fetch fall short?</p>