title: RXJs Service to return multiple observables
body: <p>I have the following searchService.search method that returns a forkJoin of two api calls.</p>
  
  <p>I want the calls to execute simultaneously which they are but I also want each response back as a single object that can be passed into my SearchSuccess action and processed immediately without waiting for all calls to complete.  Currently they are returning as an array of responses and only upon completion of both API calls - as this is what forkJoin is used for.</p>
  
  <p>My issue is that I'm struggling to find another operator that does what I want.</p>
  
  <p>Or perhaps the code pattern requires some redesign?</p>
  
  <p>action:</p>
  
  <pre class="lang-typescript prettyprint-override"><code>@Effect()
  trySearch: Observable&lt;Action&gt; = this.actions$.pipe(
    ofType(SearchActionTypes.TrySearch),
    switchMap((action: TrySearch) =&gt;
      this.searchService.search(action.payload)
          .pipe(
            map((data) =&gt; new SearchSuccess(data)),
            catchError(error =&gt; of(new SearchFail(error))),
          ),
    ),
  );
  </code></pre>
  
  <p>SearchService (snippet):</p>
  
  <pre class="lang-typescript prettyprint-override"><code>search(searchForm: SearchForm): Observable&lt;any&gt; {
    const returnArray = [];
  
    if (searchForm.searchClients) {
      const searchClientParams = new Search();
      searchClientParams.searchPhrase = searchForm.searchPhrase;
      searchClientParams.type = SearchType.Client;
      const searchClients = this.objectSearch(searchClientParams);
      returnArray.push(searchClients);
    }
  
    if (searchForm.searchContacts) {
      const searchContactParams = new Search();
      searchContactParams.searchPhrase = searchForm.searchPhrase;
      searchContactParams.type = SearchType.Contact;
      const searchContacts = this.objectSearch(searchContactParams);
      returnArray.push(searchContacts);
    }
  
    return Observable.forkJoin(returnArray);
  }
  </code></pre>