我在整个代码库中使用async/await.因此,我的api调用由异步函数定义
async function apiFetchFoo {
return await apiCall(...);
}
Run Code Online (Sandbox Code Playgroud)
我想从我的传奇代码中调用这个函数.好像我不能这样做:
// Doesn't work
function* fetchFoo(action) {
const results = await apiFetchFoo();
yield put({type: "FOOS_FETCHED_SUCCESSFULLY", foos: results});
}
Run Code Online (Sandbox Code Playgroud)
但是,这确实有效,并且与redux saga文档相匹配:
// Does work
function* fetchFoo(action) {
const results = yield call(apiFetchFoo);
yield put({type: "FOOS_FETCHED_SUCCESSFULLY", foos: results});
}
Run Code Online (Sandbox Code Playgroud)
这是使用Redux Saga和async/await的正确方法吗?在saga代码中使用这个生成器语法,在其他地方使用async/await模式是标准的吗?