Gibt es eine Möglichkeit, in Redux-Saga entprellen, wo nachfolgende Aufrufe in die Warteschlange eingereiht sind hinter der gleichen Verzögerung, die von jeder neuen Aufgabe in der Warteschlange gestoßen wird. Ähnlich wie bei lodash's debunce https://lodash.com/docs#debounce.Redux Saga entprellen und nicht nur verzögern/abbrechen
Ich habe derzeit etwas ähnlich Redox-Sagas Entprellen, aber entfernt den Cancel-Teil, da ich immer noch jede Aufgabe, ich möchte nur alle Ereignisse bündeln in einem einzigen Thread später feuern.
Was ich zur Zeit:
const deferTime = 2000;
const delay = (ms) => new Promise(resolve => setTimeout(resolve, ms));
export function* sendClickEvent (event, debounce) {
if (debounce) {
yield call(delay, deferTime);
}
yield put(action(event));
}
export function* clickSaga() {
while (true) {
const action = yield take(WIDGET_CLICKED);
const state = yield select();
const debounce = action.meta && action.meta.debounce;
const payload = getWidgetClickPayload(state, action);
const defaultData = getDefaultData(state);
const event = {
name: payload.name,
data: Object.assign(defaultData, payload.data)
};
yield fork(sendClickEvent, event, debounce);
}
}
Ich versuchte Gabel Variablen zugewiesen wird und dann, wenn die Überprüfung ausgeführt wurde (.isRunning()), aber nicht wissen, wie ich durch eine andere Verzögerung, die Gabel verschieben könnte.