Подождите, пока действие, завершенное дублем, не сработает (излишняя сага) - PullRequest
1 голос
/ 04 мая 2019

Я использую redux-saga & redux для управления асинхронным процессом при реакции, но put & take не работает. Есть идеи почему?

В функции генератора саги я отправляю действие test-action на put. Затем я хочу подождать, пока действие не будет завершено, поэтому я пытаюсь сделать это с помощью take, но take не вызывается.

В redux-devtool я могу найти, что test-action обязательно отправлено.

function* firstActionSaga(){
  // dispatch secondAction
  yield put(secondAction())

  // If secondAction finished, the below line should be called.
  yield take("SECOND_ACTION")

  console.log("second action finished.")
}

function* rootSaga() {
 yield all([

   // Wait for firstAction, and start firstActionSaga
   yield takeEvery(FIRST_ACTION, firstActionSaga)
])
}

Ожидаемое

  1. Дождитесь firstAction и запустите firstActionSaga
  2. Отправка secondAction по put
  3. Дождитесь второго действия и сделайте что-нибудь.

Фактический

  1. Дождитесь firstAction и запустите firstActionSaga
  2. Отправка secondAction по put
  3. take не срабатывает

1 Ответ

0 голосов
/ 15 мая 2019

Наконец, я могу делать то, что хочу, используя 'putResolve'.

...