收藏
回答

缓存获取+if语句判断出错

问题模块 框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
API和组件 小程序 Bug 数据缓存 微信iOS客户端 0.0.0 0.0.0

小程序中获取缓存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就不是很科学了。

最后一次编辑于  2018-05-31  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

4 个回答

  • 💋 苏雪无心 💋
    💋 苏雪无心 💋
    2018-05-31

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

    2018-05-31
    赞同
    回复
  • 夕小喵🐱
    夕小喵🐱
    2018-05-31

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

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


    if (unionid || openid) {

    console.log('ok')

    } else {

    console.log('no')

    }

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

    2018-05-31
    赞同
    回复
  • 卢霄霄
    卢霄霄
    2018-05-31

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

    2018-05-31
    赞同
    回复
  • 姚剑南
    姚剑南
    2018-05-31

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

    2018-05-31
    赞同
    回复