Hvordan kan jeg avbestille eller oppdatere en saga polling forespørsel med samme handling samtale

stemmer
3

Jeg er polling api med forsinkelse og kansellering bruke rase tilstand.

Hva jeg ønsker å oppnå er da min side gjør, jeg ønsker å starte polling for score og på litt action jeg vil kalle samme polling (samme API) med noen andre søkeparametere, slik at jeg bare ønsker å oppdatere den samme valg med nye parametere.

for at jeg har gjort noe som dette.

export function* pollScoreSnippets() {
  while (true) {
    try {
      const { data } = yield call(() => request(apis.GET_SCORE_API));
      yield put({
        type: types.DASHBOARD_DATA_FETCHED,
        payload: {
          type: ['scores'],
          data: {
            scores: { values: data.data },
          },
        },
      });
      yield call(delay, SCORE_SNIPPET_POLLING_DELAY);
    } catch (err) {
      yield put({
        type: types.DASHBOARD_DATA_FETCHING_ERROR,
        payload: {
          error: err.response.data,
        },
      });
      yield call(delay, SCORE_SNIPPET_POLLING_DELAY + 10);
    }
  }
}

export function* watchPollSaga() {
  while (true) {
    // console.log('watching');
    yield take(types.POLL_SCORE_SNIPPETS);
    yield race([call(dashGenerators.pollScoreSnippets), take(types.STOP_POLLING_SCORE_SNIPPETS)]);
  }
}

Det fungerer for meg, men med denne tilnærmingen jeg må ringe avbryte handlingen så igjen samme handling for å starte polling igjen.

Er det noen måte at hvis jeg vil kalle samme handling og enten den vil oppdatere gjeldende pollingforespørsel eller avbryte eller starte på nytt med ny pollingforespørsel

noe slags:

export function* watchPollSaga() {
  while (true) {
    // console.log('watching');
    yield take(types.POLL_SCORE_SNIPPETS);
    yield race([call(dashGenerators.pollScoreSnippets), take(types.POLL_SCORE_SNIPPETS)]);
  }
}
Publisert på 19/09/2018 klokken 13:35
kilden bruker
På andre språk...                            

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more