title: How to combine multiple Observables together in Angular 2
body: <p>So I've just started programming with Angular 2 and just got started on learning about subscribe, Subject and BehaviorSubject. Currently I have multiple subscriptions to obtain values stored in my service and emitted to a component. My application works and all but I know it is very inefficient. That it has gotten out of hand in my component: </p>
  
  <pre><code>this.threatService.minLimitChange$.subscribe( min =&gt; { this.min = min; this.getSession();});
  this.threatService.maxLimitChange$.subscribe( max =&gt; { this.max = max; this.getSession();});
  </code></pre>
  
  <p>(and like 5 other more that obtains a single value and calls function getSession() each time)</p>
  
  <p>In my threat.service: </p>
  
  <pre><code>private minLimitChangeSource = new BehaviorSubject&lt;number&gt;(this.min);
  private maxLimitChangeSource = new BehaviorSubject&lt;number&gt;(this.max);
  minLimitChange$ = this.minLimitChangeSource.asObservable();
  maxLimitChange$ = this.maxLimitChangeSource.asObservable();
  </code></pre>
  
  <p>So I've tried:</p>
  
  <pre><code>this.threatService.minLimitChange$.concat(this.threatService.maxLimitChange$).subscribe( res =&gt; console.log(res));
  </code></pre>
  
  <p>Which my aim was just to test what res was because I wasn't sure how to access the two values... but I'm getting this in my console. ;/</p>
  
  <pre><code>TypeError: this.threatService.minLimitChange$.merge is not a function. (In 'this.threatService.minLimitChange$.concat(this.threatService.maxLimitChange$)', 'this.threatService.minLimitChange$.concat' is undefined)
  </code></pre>
  
  <p>Ultimately, I'd like to get all values that getSession() needs from my service and run that function <strong>once</strong>. I would really appreciate any help or explanation on how to use concat, merge or forkJoin to combine my subscriptions please. Thank you!</p>