微信小程序wx.getStorageSync同步读缓存无法获取到数据的坑

写小程序经常碰到读缓存无法获取到数据问题,一直没头绪,以为是小程序本身的bug。
后来仔细读官方文档才发现自己被误导了,wx.getStorageSync同步读缓存 与 wx.getStorage异步读缓存写法有差异,而我在wx.getStorageSync使用了wx.getStorage的写法。

原因如下:
当时看官方文档,按照阅读习惯,我错误地理解这是wx.getStorageSync的两种使用方法,看漏了没有Sync。官方文档没仔细标明是两种读缓存的写法。让我一直以为同步和异步读缓存写法是一样的。
在这里插入图片描述
同步和异步读缓存的差异:
在这里插入图片描述
同步读缓存传参是key
在这里插入图片描述
异步读缓存传参是对象

wx.getStorageSync的代码演示

错误的代码:(用了异步读缓存的写法)

    wx.getStorageSync({
      key: 'TimeTable_Skin',
      success: function(res) {
        console.log(res.data)
      },
    })
    // 输出了 undefined

正确的代码:

var StorageData = wx.getStorageSync("TimeTable_Skin")
console.log(StorageData)
// 输出了正确的数据

改掉实际开发中的坏习惯:

以前写完正确的异步读缓存wx.getStorage代码后
为了比较同步与异步读缓存的差异,经常这样干在语句后面直接加上Sync

wx.getStorage({					== 》   wx.getStorageSync({
  key: 'TimeTable_Skin',					key: 'TimeTable_Skin',
  success: function(res) {					success: function(res) {
    console.log(res.data)					  console.log(res.data)
  },										},
})										})

现在知道两种读缓存的写法不一致后,别再这样写了。

点个赞让我看看谁跟我掉进同一个坑了

  • 23
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值