Есть ли способ сделать ведущий дебад?
В примере рецептов показан только конечный откат.Ниже приведен пример завершающего отладки, где мы откладываем логику на 500 мсек:
import { call, cancel, fork, take, delay } from 'redux-saga/effects'
function* handleInput(input) {
// debounce by 500ms
yield delay(500)
...
}
function* watchInput() {
let task
while (true) {
const { input } = yield take('INPUT_CHANGED')
if (task) {
yield cancel(task)
}
task = yield fork(handleInput, input)
}
}
, где я хотел бы выполнить логику при первом вызове, которая отменяет любые последующие вызовы до тех пор, пока не закончится 500 мс.
Редактировать
Это можно сделать, используя takeLeading
, затем откладывая сагу в конце на столько времени, сколько вы хотите отменить.