等到通过Take完成动作不起作用(redux saga)

时间:2019-05-04 07:19:47

标签: javascript reactjs redux redux-saga

我正在使用redux-saga和redux在react上处理异步过程,但是put&take不起作用。知道为什么吗?

在saga的生成器函数中,我由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. 通过put派出secondAction
  3. 等到secondAction,然后做点什么。

实际

  1. 等待firstAction,然后启动firstActionSaga
  2. 通过put派出secondAction
  3. take未触发

1 个答案:

答案 0 :(得分:0)

最后,我可以使用'putResolve'做我想做的事情。