Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Redux 行动前的重演_Redux_Redux Saga - Fatal编程技术网

Redux 行动前的重演

Redux 行动前的重演,redux,redux-saga,Redux,Redux Saga,我的整个应用程序都依赖于服务器请求加载的配置数据,如何使用redux saga在每个操作上创建阻塞“before”操作,现在我的globalSaga如下所示。非常感谢你的帮助 function * rootSaga () { yield takeLatest(LOAD_ONBOARDING.REQUEST,loadOnboardingSaga) const res = yield put.resolve(loadOnboarding()) yield console.log(res)

我的整个应用程序都依赖于服务器请求加载的配置数据,如何使用redux saga在每个操作上创建阻塞“before”操作,现在我的globalSaga如下所示。非常感谢你的帮助

function * rootSaga () {
  yield takeLatest(LOAD_ONBOARDING.REQUEST,loadOnboardingSaga)
  const res = yield put.resolve(loadOnboarding())
  yield console.log(res)

  yield all([
    fork(globalSaga),
    fork(spaceSaga),
    fork(profileSaga),
    fork(userSaga),
    fork(pagesSaga)
  ])
}

takeLatest
与分叉相同,自动取消每个后续分叉。检查描述性示例

因此,在您的情况下,由于
loadOnboardingSaga
应连续阻止下一次调用,最便宜的解决方案是将其全部置于
loadOnboardingSaga
下,因为存在如下直接顺序:

函数*initRestSaga(){
交出全部([
福克(环球萨加),
福克(太空传奇),
叉子(佐贺),
fork(userSaga),
叉子(佩格萨加)
])
}
函数*loadOnboardingSaga(){
//...
const res=yield put.resolve(loadOnboarding())
收益控制台日志(res)
收益调用(initRestSaga)
}
函数*rootSaga(){
最新产量(LOAD_ONBOARDING.REQUEST,loadOnboardingSaga)

}
非常感谢,这是我没有看到的可能的解决方案。最后决定在每一个传奇故事中都采取连锁封锁行动。我对这种架构选择不太满意,但没有找到解决这个问题的任何优雅的解决方案,即如何同步链接包含异步请求的sagas。也许我应该从这个问题开始,如果你觉得答案有用,你可以接受它或投票。很乐意帮忙。