title: When should I use `publishReplay` vs `shareReplay`?
body: <p>I already know that</p>
  <ul>
  <li><p><code>publish</code>  shares a single subscription  and also returns a <code>ConnectableObservable</code> ( so we have to <code>Connect()</code>)</p>
  </li>
  <li><p><code>Share()</code> is <code>publish().refcount()</code></p>
  </li>
  </ul>
  <p>The <code>Replay</code> postfix is pretty obvious, it returns its last emission/s.</p>
  <p>Let's take for example an Angular HTTP request with present AND future subscription :</p>
  <pre class="lang-html prettyprint-override"><code>&lt;p&gt;{{ (person | async)?.id   }}&lt;/p&gt; //present markup
  
  &lt;p *ngIf=”show”&gt;{{ (person | async)?.userId }}&lt;/p&gt; &lt;!-- future markup --&gt;
  </code></pre>
  <p>If I don't want multiple <code>http</code> requests I can use :</p>
  <pre class="lang-js prettyprint-override"><code>publishReplay().Connect()
  </code></pre>
  <p>But I can also use: <code>shareReplay()</code>, but I'm sure that there is one here that is more correct to use than the other.</p>
  <p><strong>Question :</strong></p>
  <p>When should I use  <code>publishReplay</code> vs <code>shareReplay</code>? What will be the difference in terms of that HTTP present &amp; future request?</p>
  <p><sub>NB
  Why there's no documentation about <code>shareReplay</code>?
  </sub></p>