1
私は10秒ごとに実行されるポーリングサガを持っています。 UPDATE_DEPLOYMENT要求が行われると、実行中のポーリング・サガを取り消し、状態をクリアして新しいポーリングをトリガーします(stateのsite_location値もUPDATE_DEPLOYMENTによって更新されるため、新しい休止エンドポイントをポーリングする必要があります)。キャンセル時に佐賀は終了しません
これは機能していないようです。現在実行中のポーリング・サガはキャンセルされずに完了まで実行され、最終的に失敗を報告します。これは、site_location状態が途中で変更されたために古いurlにのみ存在していたコンポーネントを要求します。ここで
がメインのサガです(UPDATE_DEPLOYMENTはすべて私たちのGUIが使用する標準アーキテクチャに合わせて滞在するために送信されたときに、異なるサガがsite_location状態を更新する責任がある)export function* watchPollRequest() {
let pollTask;
while (true) {
const action = yield take([POLL, UPDATE_DEPLOYMENT, REPORT_SUCCESS, REPORT_FAILURE]);
switch (action.type) {
case REPORT_SUCCESS:
case REPORT_FAILURE:
pollTask = undefined;
break;
case UPDATE_DEPLOYMENT:
if (pollTask) {
cancel(pollTask);
pollTask = undefined;
}
yield put(clearSummaryData());
yield put(poll());
case POLL:
if (pollTask) {
// only need one poll at a time
break;
}
pollTask = yield fork(onPollRequest);
break;
}
}
}
テストは、それがどんなにたときに表示さキャンセルは古いポーリングを実行し、キャンセルされずに完了します