缓存获取+if语句判断出错
发布于 6 年前 作者 yan78 2037 次浏览 来自 问答

小程序中获取缓存key,if判断key的值是否为空时,会判断出错,只能使用内容长度来判断。

demo代码如下:

var aa=wx.getStorageSync(‘aa’);   //同步获取缓存

var bb=wx.getStorageSync(‘bb’)

if(aa==null||bb==null){                       //必须改成aa.length<=0||bb.length<=0才可以成功执行

console.log(“获取不成功:”)

}

else{

console.log(“获取成功”)

}

已经使用clear,保证缓存不存在该数据,但仍会判断出错,只能使用length,但假如个别情况下,如我们允许用户在某个字段存入数据为空,只使用存入是否成功来判断,不关注存入内容是否为空时,使用length就不是很科学了。

4 回复

感谢楼上,是我逻辑写错。

let openid = wx.getStorageSync(’_openid_’);

let unionid = wx.getStorageSync(’_unionid_’);

if (unionid || openid) {

console.log(‘ok’)

} else {

console.log(‘no’)

}

这段代码我用了五来月了,没出现你的问题呢。

没有的东西,取出来是空字符串,你判断 == null,肯定是错的。可以直接 if(!aa||!bb)判断。你存的时候,可以存个Object进去呀,这样取出来的如果是Object,就说明是用户存入成功了的

这样写不就行了吗?好像如果缓存里面没有的话,返回的是空,不等于null

回到顶部