title: How to cancel the task in Saga if takeLatest is used?
body: <p>I have many forms in the app and to reuse the same form, but with different 'id' I have created a component, with this saga:</p>
  <pre><code>export default function FormSaga(SEND_REQUEST) {
    return function* () {
      yield takeLatest(SEND_REQUEST, submit);
    };
  }
  </code></pre>
  <p>But if I need to abort the form submission, Saga's manual is offering me this solution:</p>
  <pre><code>function* main() {
    while ( yield take('START_BACKGROUND_SYNC') ) {
      // starts the task in the background
      const bgSyncTask = yield fork(bgSync)
  
      // wait for the user stop action
      yield take('STOP_BACKGROUND_SYNC')
      // user clicked stop. cancel the background task
      // this will cause the forked bgSync task to jump into its finally block
      yield cancel(bgSyncTask)
    }
  }
  </code></pre>
  <p>I tried this:</p>
  <pre><code>export default function FormSaga(SEND_REQUEST, ABORT_REQUEST) {
    return function* () {
      while (yield take(SEND_REQUEST)) {
        const submitTask = yield fork(submit);
  
        yield take(ABORT_REQUEST);
        yield cancel(submitTask);
      }
    };
  }
  </code></pre>
  <p>But it is not working.</p>
  <p>If somebody could help me rewrite my takeLatest so the task cancellation would work? Thank you!</p>