Reactjs 什么';这两种rootSaga配置的区别是什么
下面的代码是对redux传奇中的rootSaga的一次尝试 有人能告诉我区别吗Reactjs 什么';这两种rootSaga配置的区别是什么,reactjs,redux,react-redux,redux-saga,Reactjs,Redux,React Redux,Redux Saga,下面的代码是对redux传奇中的rootSaga的一次尝试 有人能告诉我区别吗 //第一类 导出默认函数*rootProjectSaga():IterableIterator{ 交出全部([ takeEvery(转让项目、转让项目,如有), takeLatest(加载_项目,获取项目,如有) ]) } //种类2 导出默认函数*rootProjectSaga():IterableIterator{ 收益率(转让项目、转让项目,如有) 收益率(加载项目、获取项目,如有) } const sa
//第一类
导出默认函数*rootProjectSaga():IterableIterator{
交出全部([
takeEvery(转让项目、转让项目,如有),
takeLatest(加载_项目,获取项目,如有)
])
}
//种类2
导出默认函数*rootProjectSaga():IterableIterator{
收益率(转让项目、转让项目,如有)
收益率(加载项目、获取项目,如有)
}
const sagaMiddleware=createSagaMiddleware()
const store=createStore(
减速器,
applyMiddleware(sagaMiddleware)
)
sagaMiddleware.run(rootProjectSaga)
请注意,上述代码不会注意到在传输项目之前发生的任何加载项目操作,也不会注意到在等待加载项目时发生的任何传输项目操作
此外,如果希望这种情况发生不止一次,则需要将其包装在一个循环中:
export default function* rootProjectSaga () {
while (true) {
const transferAction = yield take(TRANSFER_PROJECT);
yield call(transferProject, transferAction);
const loadAction = yield take(LOAD_PROJECTS);
yield call(getProjects, loadAction);
}
}
我的要求是,在转移\u项目后,我将加载\u项目。但是对于类型1的代码,我发现执行顺序无法保证。非常感谢您的回复,我使用rootSaga的确切上下文如上所述,我不知道区别。你能找到我吗!
export default function* rootProjectSaga (): IterableIterator<any> {
yield all([
takeEvery(TRANSFER_PROJECT, transferProject as any),
takeLatest(LOAD_PROJECTS, getProjects as any)
])
}
export default function* rootProjectSaga () {
const transferAction = yield take(TRANSFER_PROJECT);
yield call(transferProject, transferAction);
const loadAction = yield take(LOAD_PROJECTS);
yield call(getProjects, loadAction);
}
export default function* rootProjectSaga () {
while (true) {
const transferAction = yield take(TRANSFER_PROJECT);
yield call(transferProject, transferAction);
const loadAction = yield take(LOAD_PROJECTS);
yield call(getProjects, loadAction);
}
}