title: Cancel previous requests and only fire the latest request with redux observable
body: <p>So I have use case where I update the api request when the map is moved - but it could generate several rapid fire requests with small map movements - and I want to cancel all the inflight requests except for the last one.  I can use debounce to only send requests after a delay.  However I still want to cancel any old requests if they happen to still be in process.</p>
  
  <pre><code>const fetchNearbyStoresEpic = action$ =&gt;
    action$.ofType(FETCH_NEARBY_STORES)
      .debounceTime(500)
      .switchMap(action =&gt;
        db.collection('stores')
          .where('location', '&lt;=', action.payload.max).
          .where('location', '&gt;=', action.payload.min)
          .map(response =&gt; fetchNearbyStoresFulfilled(response))
          .takeUntil(action$.ofType(FETCH_STORES_CANCELLED))
      );
  </code></pre>
  
  <p>I see that you can use <code>takeUntil</code> but you need to explicitly fire a cancel action.  I see in the docs that switchMap will take the latest and cancel all the others - do I have to implement a cancel interface in my api call?  In this case it would be a firebase query to firestore.</p>