मैं कैसे रद्द या एक ही कार्रवाई कॉल में कोई गाथा पोलिंग अनुरोध अद्यतन कर सकते हैं

वोट
3

मैं देरी और रद्द करने रेस स्थिति का उपयोग कर के साथ मतदान एपीआई हूँ।

क्या मैं हासिल करना चाहते हैं जब मेरे पेज renders, मैं स्कोर के लिए और कुछ कार्रवाई मैं कुछ अन्य क्वेरी पैरामीटर वाला एक ही मतदान (समान एपीआई) कॉल करेंगे ताकि मैं सिर्फ नए पैरामीटर के साथ एक ही मतदान को अपडेट करना चाहते पर मतदान शुरू करना चाहते है।

उस के लिए मैं कुछ इस तरह किया है।

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)]);
  }
}

यही कारण है कि मेरे लिए काम कर रहा है, लेकिन इस दृष्टिकोण के साथ मैं कार्रवाई उसके बाद फिर से मतदान फिर से पुन: प्रारंभ करने के लिए एक ही कार्रवाई को रद्द कॉल करनी होगी।

वहाँ किसी भी तरह से है कि अगर मैं एक ही कार्रवाई कॉल करेंगे और या तो यह मौजूदा पोलिंग अनुरोध को अपडेट करने या रद्द करने या नया मतदान अनुरोध के साथ पुन: प्रारंभ होगा है

तरह का कुछ:

export function* watchPollSaga() {
  while (true) {
    // console.log('watching');
    yield take(types.POLL_SCORE_SNIPPETS);
    yield race([call(dashGenerators.pollScoreSnippets), take(types.POLL_SCORE_SNIPPETS)]);
  }
}
19/09/2018 को 13:35
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            

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