Как мне создать ведущий дебат с помощью redux-saga - PullRequest
0 голосов
/ 23 мая 2018

Есть ли способ сделать ведущий дебад?

В примере рецептов показан только конечный откат.Ниже приведен пример завершающего отладки, где мы откладываем логику на 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, затем откладывая сагу в конце на столько времени, сколько вы хотите отменить.

1 Ответ

0 голосов
/ 25 мая 2018

Это можно сделать, используя takeLeading, затем откладывая сагу в конце на столько времени, сколько вы хотите отменить.

...