title: RxJS - How to share the output of an expensive observable but rerun that observable if its requested again after N seconds?
body: <p>Let's say we have this global const:</p>
  
  <pre class="lang-js prettyprint-override"><code>const isSignedIn = fromPromise(fetch('/api/is-signed-in'))
      .pipe(throttleTime(1000), shareReply(1));
  </code></pre>
  
  <p>After page load, several components will subscribe to this at the same time:</p>
  
  <pre class="lang-js prettyprint-override"><code>isSignedIn.subscribe(() =&gt; console.log('do 1st'));
  isSignedIn.subscribe(() =&gt; console.log('do 2nd'));
  isSignedIn.subscribe(() =&gt; console.log('do 3rd'));
  </code></pre>
  
  <p>The above will only call the API once, however i need it to call the API again (ie after 1 second) if another component subscribes to it.</p>
  
  <pre class="lang-js prettyprint-override"><code>isSignedIn.subscribe(() =&gt; console.log('button press'));
  </code></pre>
  
  <p>How do i that using RxJS?</p>