title: Observable.zip() being executed asynchronously
body: <p>I'm coding an Android App, using RxJava, Retrofit and the Clean Architecture. The thing is that I have an Interactor/UseCase that needs to return the collection of favorite teams and favorite players. The collection of favorite teams is the results from one endpoint mixed with another. Same thing for the favorite players. In the Interactor/UseCase implementation I'm doing something like this:</p>
  
  <pre><code>getTeams = Observable.merge(mNetworkRetrofitService.getAllTeams(), mNetworkRetrofitService.getAllFavoriteTeams());
  getPlayers = Observable.merge(mNetworkRetrofitService.getAllPlayers(), mNetworkRetrofitService.getAllFavoritePlayers());
  </code></pre>
  
  <p>Then I'm zipping this two responses together returning them in a single wrapper object:</p>
  
  <pre><code>Observable.zip(getTeams, getPlayers, new Func2&lt;List&lt;Team&gt;, List&lt;Player&gt;, Pair&lt;List&lt;Team&gt;, List&lt;Player&gt;&gt;&gt;() {
      @Override
      public Pair&lt;List&lt;Team&gt;, List&lt;Player&gt;&gt; call(List&lt;Team&gt; teamList, List&lt;Player&gt; players) {
          return new Pair&lt;&gt;(teamList, players);
      }
  }).subscribe(new DefaultSubscriber&lt;Pair&lt;List&lt;Team&gt;, List&lt;Player&gt;&gt;&gt;() {
  
      @Override
      public void onNext(Pair&lt;List&lt;Team&gt;, List&lt;Player&gt;&gt; pair) {
          callback.showResultOnUI(pair);
      }
  
  });
  </code></pre>
  
  <p>I know that the .zip() method is supposed to wait until the two rx.Observables end emitting the items, but in this case the mixing method is being executed more than one time. </p>
  
  <p>My question is; Is there a way to keep the zip's merging method from being executed more than once?</p>
  
  <p>Keep in mind this things:</p>
  
  <ul>
  <li><p>I simplified the example. I'm actually also merging a cache rx.Observable with the Retrofit's rx.Observables.</p></li>
  <li><p>The endpoints can't change. The wrapper object can't change. The response must be returned to te UI in a sigle object wrapper. We can't send the favorite teams and the favorite players in two different callback methods.</p></li>
  </ul>