Javascript 如何停止重复操作?当我出错时
如果getPost函数的yield调用(刷新)中发生错误,则无论是否发生错误,getPost_请求操作都将继续 但是,如果getPost函数中发生错误,我不希望该操作继续运行,并像这样停止和结束Javascript 如何停止重复操作?当我出错时,javascript,reactjs,redux,react-redux,redux-saga,Javascript,Reactjs,Redux,React Redux,Redux Saga,如果getPost函数的yield调用(刷新)中发生错误,则无论是否发生错误,getPost_请求操作都将继续 但是,如果getPost函数中发生错误,我不希望该操作继续运行,并像这样停止和结束 yield put({ type: REFRESH_FAILURE, error: err.response.data, }); 这是我的代码,我如何修复 function getPostAPI(data) { ret
yield put({
type: REFRESH_FAILURE,
error: err.response.data,
});
这是我的代码,我如何修复
function getPostAPI(data) {
return axiosInstace.post("/kakao/getpost", data);
}
function* getPost(action) {
try {
const result = yield call(getPostAPI, action.data);
yield put({
type: GETPOST_SUCCESS,
data: result.data,
});
} catch (err) {
if (err.response.data === "jwtEx") {
yield call(refresh); // if this error i want to stop .
yield put(action);
} else {
yield put({
type: GETPOST_FAILURE,
error: err.response.data,
});
}
}
}
function refreshAPI() {
// console.log('data::', data);
return axiosInstace.post("/kakao/refresh");
}
function* refresh() {
try {
const result = yield call(refreshAPI);
yield AsyncStorage.setItem(
"accesstoken",
`${result.data.accessToken}`,
() => {
// console.log('accesstoken 재발급 저장 완료');
console.log("accesstoken3333333333333333333", result.data.accessToken);
}
);
yield put({
type: REFRESH_SUCCESS,
data: result.data,
});
} catch (err) {
console.log("refresh err.response.data:", err.response.data);
yield put({
type: REFRESH_FAILURE,
error: err.response.data,
});
}
}
您可以通过执行以下操作对代码进行小的更新:
- 从
生成器函数返回刷新
布尔值
布尔值将是:
如果true
成功刷新
如果false
刷新失败
- 设置
到收益调用(刷新)
声明以捕获此返回的const
布尔值
- 如果捕获的
布尔值
为
,则通过假
提前退出生成器功能返回