title: BehaviorSubject subscriber gets same next() element multiple times
body: <p>I'm using a shareDataService using <strong>BehaviorSubject</strong> like below. My problem is that every time I call the service's <strong>next()</strong> method the listener subscription in any other component is called several times, looks like it received the same message several times. Is this expected behavior? How to prevent it?</p>
  
  <p>The service is a singleton.
  I do not call <strong>changeMessage</strong> multiple times</p>
  
  <pre><code>@Injectable()
  export class ShareDataService {
  
      messageSource = new BehaviorSubject(someData);
      currentMessage: Observable = this.messageSource.asObservable();
      changeMessage(message) {
          this.messageSource.next(message);
      }
  
  }
  </code></pre>
  
  <p>Subscription in component</p>
  
  <pre><code>ngDoCheck() {
      this.shareDataService.currentMessage
          .pipe(takeUntil(this.ngUnsubscribe))
          .subscribe((message) =&gt; {
              //Do stuff
          }
      });
  }
  </code></pre>