问题描述
一段时间后,我尝试了许多解决方案来执行操作,但是似乎没有任何效果:
export default function* authenticateUserRequest({ payload }) {
yield put(setIsLogging(true));
try {
const { login,password,company,isSaved } = payload;
const client = yield call(geoRedClient);
const { data } = yield call(client.auth,{
login,client: company,duree_token: 28800,});
const error = yield call(selectErrorFromresponse,data);
if (!isNilOrEmpty(error)) {
yield put(addError('loginError'));
yield cancel();
}
const { token: authToken,...loginData } = selectCurrentUserLoginFromresponse(data);
yield call(AsyncStorage.setItem,STORAGE_KEY.authToken,authToken);
yield put(loginRequestSuccess(loginData));
//wait 2 seconds
} catch (e) {
yield put(addError('loginError'));
}
yield put(setIsLogging(false));
yield delay(30000);
yield put(logoutRequest());
}
我想在30秒后注销,但是每次我都立即注销,您看到的是我尝试过的。
我也尝试过这个:
const delay = time => new Promise(resolve => setTimeout(resolve,time));
export default function* authenticateUserRequest({ payload }) {
yield put(setIsLogging(true));
try {
// same actions as before
} catch (e) {
yield put(addError('loginError'));
}
yield put(setIsLogging(false));
yield call(delay,2000);
yield put(logoutRequest());
}
还有这个:
const sleep = sec => {
return new Promise(resolve => setTimeout(resolve,sec * 1000));
};
export default function* authenticateUserRequest({ payload }) {
yield put(setIsLogging(true));
try {
// same actions as before
yield sleep(20); //wait 2 seconds
yield put(logoutRequest());
} catch (e) {
yield put(addError('loginError'));
}
yield put(setIsLogging(false));
}
但是什么也没有,总是什么都没有!
任何帮助将不胜感激。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)