当前位置:   article > 正文

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

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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

正确的代码:

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

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

以前写完正确的异步读缓存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)
  },										},
})										})
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/641694
推荐阅读
  

闽ICP备14008679号