赞
踩
写小程序经常碰到读缓存无法获取到数据问题,一直没头绪,以为是小程序本身的bug。
后来仔细读官方文档才发现自己被误导了,wx.getStorageSync同步读缓存 与 wx.getStorage异步读缓存写法有差异,而我在wx.getStorageSync使用了wx.getStorage的写法。
原因如下:
当时看官方文档,按照阅读习惯,我错误地理解这是wx.getStorageSync的两种使用方法,看漏了没有Sync。官方文档没仔细标明是两种读缓存的写法。让我一直以为同步和异步读缓存写法是一样的。
同步和异步读缓存的差异:
同步读缓存传参是key
异步读缓存传参是对象
错误的代码:(用了异步读缓存的写法)
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)
}, },
}) })
现在知道两种读缓存的写法不一致后,别再这样写了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。