今天在做项目的时候,后端的接口返回数据是两个状态:
1、如果用户已经绑定过,则返回:{ login_token: “XXXXX”, user_id: “XXXX” }
2、如果用户没有绑定过,则返回: { micro_app_user_id: “XXX” }
我需要将后端返回的值存起来,然后在后面的页面中做判断,不同的返回进行不同的操作,而我为了省事,在后端返回数据的时候,不管返回的东西是什么,直接将三个值存了起来:
if (res.status === 'success' && res.data) {
sessionStorage.setItem('login_token', res.data.login_token)
sessionStorage.setItem('user_id', res.data.user_id)
sessionStorage.setItem('micro_app_user_id', res.data.micro_app_user_id)
}
在后面做判断的时候,发现判断一直有问题,后来发现,当后端只返回micro_app_user_id的时候,我从缓存中拿出来的login_token是个字符串“undefined”,并不是undefined属性,所以它不是false,就一直进入此判断中,导致程序错误
最后还是老老实实的在缓存的时候加了判断,解决问题