Reactjs 使用Redux saga正确处理操作
我是Reactjs新手,如果有什么问题,请告诉我。Reactjs 使用Redux saga正确处理操作,reactjs,redux,react-redux,redux-saga,Reactjs,Redux,React Redux,Redux Saga,我是Reactjs新手,如果有什么问题,请告诉我。 关于异步redux传奇,我有一件事要问。 基本上,我有一个简单的操作:当我选择一个项目=>删除它时,如果成功,调用获取所有项目的api,再次 像这样:(这发生在我的传奇故事中) 我的想法是,我希望它是连续的,我的意思是,当我删除项目时,“getall”操作必须在前一个操作完成时“等待”,然后轮到它。 有什么建议吗 每当上一个操作完成时,“getall”操作必须“等待”, 然后轮到它了 只需使用全权重forksaga流程,并使用异步操作构建您自己
关于异步redux传奇,我有一件事要问。
基本上,我有一个简单的操作:当我选择一个项目=>删除它时,如果成功,调用获取所有项目的api,再次
像这样:(这发生在我的传奇故事中) 我的想法是,我希望它是连续的,我的意思是,当我删除项目时,“getall”操作必须在前一个操作完成时“等待”,然后轮到它。
有什么建议吗 每当上一个操作完成时,“getall”操作必须“等待”, 然后轮到它了 只需使用全权重
fork
saga流程,并使用异步操作构建您自己的自定义执行流
包含交叉等待依赖关系的任何情况的示例:
function* sagaProc() {
let controlPromise, controlResolve;
while(true) {
// ...
controlPromise = new Promise(resolve => (controlResolve = resolve))
socket.on('message', msg => controlResolve(msg))
yield put({ type: 'SOME_REQUEST' })
yield call(() => fetch('SOME_URL'))
const message = yield call(() => controlPromise)
yield put({ type: 'SOME_RESPONSE', ...message })
// ...
}
}
function* mainSaga() {
// ...
yield fork(sagaProc)
// ...
}
每当上一个操作完成时,“getall”操作必须“等待”,
然后轮到它了
只需使用全权重fork
saga流程,并使用异步操作构建您自己的自定义执行流
包含交叉等待依赖关系的任何情况的示例:
function* sagaProc() {
let controlPromise, controlResolve;
while(true) {
// ...
controlPromise = new Promise(resolve => (controlResolve = resolve))
socket.on('message', msg => controlResolve(msg))
yield put({ type: 'SOME_REQUEST' })
yield call(() => fetch('SOME_URL'))
const message = yield call(() => controlPromise)
yield put({ type: 'SOME_RESPONSE', ...message })
// ...
}
}
function* mainSaga() {
// ...
yield fork(sagaProc)
// ...
}
对不起,你能澄清一下你的传奇故事是如何发展的吗?操作删除=>服务删除=>服务获取全部=>操作获取全部=>???别的?它应该停在这里吗?@Ematipico是的,是的。我的问题是,操作getall应该在服务/操作delete完成之前等待。当您像这样使用yield时,后续调用将等待yield返回一些内容。所以,当你的代码被设计出来时,它已经在按顺序运行了。对不起,你能澄清一下你的传奇故事的流程吗?操作删除=>服务删除=>服务获取全部=>操作获取全部=>???别的?它应该停在这里吗?@Ematipico是的,是的。我的问题是,操作getall应该在服务/操作delete完成之前等待。当您像这样使用yield时,后续调用将等待yield返回一些内容。因此,随着代码的布局,它已经按顺序运行了。