https://ibb.co/dsNrnPQ --错误截图
我遇到了异步事件的问题。登录到站点时,当地区存储还没有准备好的时候。我搞不懂异步。刷新页面后,问题就消失了。
未处理拒绝(SyntaxError):JSON中位于0位置的意外令牌u
字符串问题
const userData = await userDataGetter();export function setBalanseFetch(){
return async dispatch => {
const userData = await userDataGetter();
const userID = await userData.userId;
try{
const respone = await axios.post('/api/profile', {userID})
const json = await respone["data"];
const FetchBalanse = json.items[0].balanse;
dispatch( {type: FETCH_BALANSE, payload: Number(FetchBalanse)})
}catch(e){
console.log(`Axios spend balanse request failed: ${e}`);
}
}
}代码函数userDataGetter
async function userDataGetter(){
const userData = await JSON.parse(localStorage.userData);
return userData;
}
export default userDataGetter发布于 2021-01-24 12:48:34
你有:
const userData = await JSON.parse(localStorage.userData);
但是,JSON.parse不是异步函数。它不会等待localStorage密钥出现并准备就绪,这似乎是您的代码所希望的。(另外,正如一条评论所指出的,你想要localStorage.get('userData'))。你也没有确认它是否存在。
您也不会显示localStorage的设置位置。但是,您的解决方案很可能是在知道它是从设置它的相同位置设置之后触发依赖于它的代码,并且当您需要在任何其他时间访问它时,首先检查它的存在。
https://stackoverflow.com/questions/65870336
复制相似问题