title: Does Subject.complete() unsubscribe all listeners?
body: <p>I build a simple confirmation dialog service (Angular 2) with this method:</p>
  
  <pre><code>confirm(body?: string, title?: string): Subject&lt;void&gt; {
      this.confirmation = new Subject&lt;void&gt;();
      // ... show dialog here... "are you sure?"
      return this.confirmation;
  }
  
  _onYesClicked() {
    // ... closing the dialog
    this.confirmation.next();
    this.confirmation.complete();
  } 
  
  _onNoClicked() {
    // ... closing the dialog
    this.confirmation.complete();
  }
  </code></pre>
  
  <p>Usage:</p>
  
  <pre><code>confirmationService.confirm().subscribe(() =&gt; alert("CONFIRMED"));
  </code></pre>
  
  <p>If someone uses the service, he gets a Subject (which is an Observable) returned and can "subscribe()" to it. The subscription is called when "yes" is clicked and therefore the confirmation was given...</p>
  
  <p>Is this the correct way to do this? And more important... will the call to</p>
  
  <pre><code>this.confirmation.complete();
  </code></pre>
  
  <p>unsubscribe the subscribed listeners and therefore prevent any lingering references (memory leakage)?</p>