title: AsyncSubject - How to get data only one time?
body: <p>Issue concerns using Rxjs in Angular4</p>
  
  <p>RxJS version:
  5.5.0</p>
  
  <p>Code to reproduce:
  Service
  <code>
   subject= new AsyncSubject&lt;String&gt;();
   subject.next(data); 
   subject.complete();</code></p>
  
  <p>Component
  <code>
  ngOnInit(){ 
     subject.subscribe(); 
  }</code></p>
  
  <p>Expected behavior:
  Receive data only one time, and next clean data in subject to not receive it one more time or force unsubsribe subject.</p>
  
  <p>Actual behavior:
  In service I have asyncSubject which emit some data. In some component I subscribe my asyncSubject, data comes every component initialization. I tried unsubscribe subject but, after next component initialization it subscribes again.</p>
  
  <p>Additional information:
  Angular version 4.4.6
  Chrome version 61</p>
  
  <p><strong>DashboardComponent</strong>:</p>
  
  <pre><code>constructor(private userEvents: UserEvents,) {}
  
  ngOnInit() {
      this.successLogged();
  }
  
  
  successLogged() {
      this.userEvents.successLoggedObservable.subscribe(message =&gt; {
          console.log("WORK");
      });
  }
  </code></pre>
  
  <p><strong>UserEvents</strong>:</p>
  
  <pre><code>private  successLoggedObservable = new AsyncSubject&lt;String&gt;();
  get successLogged() {
      return this.successLoggedObservable;
  }
  </code></pre>
  
  <p><strong>LoginComponent</strong>:</p>
  
  <pre><code>this.userEvents.successLoggedObservable.next("MESSAGE");
  this.userEvents.successLogged.complete();
  this.stateService.go('dashboard');
  </code></pre>