title: Passing through multiple parameters to rxjs operator
body: <p>Is there a more elegant way of doing the following?</p>
  
  <pre><code>private getHeaders(): Observable&lt;any&gt; {
    let version;
    let token;
    return this.appInfo.getVersion()
      .pipe(
        tap(appVersion =&gt; version = appVersion),
        mergeMap(() =&gt; this.storage.get('access_token')),
        tap(accessToken =&gt; token = accessToken),
        mergeMap(accessToken =&gt; of(this.createHeaders(version, token)))
      );
  }
  </code></pre>
  
  <p>How can I more <em>fluently</em> remember the two return values of <code>this.appInfo.getVersion()</code> and <code>this.storage.get('access_token')</code> without writing them to temporary variables with the power of rxjs?</p>
  
  <p>Perhaps merging some observables into one?
  There are so many rxjs operators and stuff...</p>