title: How to wait on / yield to multiple actions in single redux observable epic?
body: <p>I have a redux Saga that runs three different actions every time 'WATCHLIST_FETCH_REQUEST' is dispatched:</p>
  
  <pre><code>function* watchFetchWatchlist() {
    yield takeLatest('WATCHLIST_FETCH_REQUEST', fetchWatchlist);
  }
  
  
  function* fetchWatchlist() {
    const activity = 'ACTIVITY_FETCH_WATCHLIST';
    yield put(
      addNetworkActivity(activity) // Action 1: enables a global loading indicator before request is made
    );
    const { response, error } = yield call(
      api.fetchWatchlist // make an API request
    );
    yield put(
      removeNetworkActivity(activity) // Action 2: removes the above global loading indicator after request completes
    );
    if (response) {
      yield put(
        updateUserWatchlist(response) // Action 3a: updates Redux store with data if response was successful
      );
    } else {
      yield put(
        watchlistFetchFailed(error) // Action 3b: updates Redux store with error if response failed
      );
    }
  }
  </code></pre>
  
  <p>The flow of this saga is synchronous in nature. Action 1 must run first to set the global loading state for the app. Action 2 must run after Action 1 and after the API response comes back to remove the global loading state when the network activity is finished.</p>
  
  <p>I'm pretty new to redux-observable but I have been digging around a lot trying to figure out how to convert this saga into an epic. The two goals here:</p>
  
  <ol>
  <li>Perform actions sequentially, one after the other, as opposed to running in parallel</li>
  <li>Perform these actions / flow in a single epic (kicks off when type: 'WATCHLIST_FETCH_REQUEST' is fired)</li>
  </ol>
  
  <p>How do you achieve this with redux-observable? Thanks!</p>