redux-saga:跟踪多个异步任务
redux-saga: tracking multiple async tasks
我正在使用 sagas 来跟踪多个异步任务,但有一个问题我一直未能完全解决:
function* performTask1() {
// Some logic here to takeLatest for the relevant component
// check if component id matches?
// Only perform API call with the latest
const { result } = yield takeLatest('doAsync2')
}
function* performTask2() {
const { result } = yield call(api, args)
// do something with results (not relevant)
}
function* watchAsyncTasks() {
yield takeEvery('doAsync2', performTask2)
yield takeEvery('doAsync1', performTask1)
}
- componentA 调度 doAsync1
componentB 调度 doAsync1
组件 C 分派 doAsync2(好的措施)
componentA 调度 doAsync1
- componentB 调度 doAsync1
我如何使用 sagas 来确保只有 sagas 3、4 和 5 完成它们的 API 调用?
function* generator(){
yield call(api,params);
yield call(api2, params2);
}
const gen = generator;
gen.next() // done: false/true
gen.next() // done: false/true
我正在使用 sagas 来跟踪多个异步任务,但有一个问题我一直未能完全解决:
function* performTask1() {
// Some logic here to takeLatest for the relevant component
// check if component id matches?
// Only perform API call with the latest
const { result } = yield takeLatest('doAsync2')
}
function* performTask2() {
const { result } = yield call(api, args)
// do something with results (not relevant)
}
function* watchAsyncTasks() {
yield takeEvery('doAsync2', performTask2)
yield takeEvery('doAsync1', performTask1)
}
- componentA 调度 doAsync1
componentB 调度 doAsync1
组件 C 分派 doAsync2(好的措施)
componentA 调度 doAsync1
- componentB 调度 doAsync1
我如何使用 sagas 来确保只有 sagas 3、4 和 5 完成它们的 API 调用?
function* generator(){
yield call(api,params);
yield call(api2, params2);
}
const gen = generator;
gen.next() // done: false/true
gen.next() // done: false/true