小程序
小游戏
企业微信
微信支付
扫描小程序码分享
无缓存时 app.js异步缓存信息
index.js onload是setData({data:wx.get同步缓存})
有时拿不到缓存的数据因为还没缓存好 我加了一个判断 再setTimeout() 一段时间后重新setData()
有缓存时 正常
对于清除缓存 重新编译时 除了setTimeout()这个方法 有没有更好的解决方案
4 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
这问题见过好多好多遍了。。
app.js
onLaunch:function(){
wx.request({
success: res=>{
wx.setStorage({
key:'xxx',
value:res.xxxxx
})
typeof(this.callBack) && this.callBack(res.xxxxx)
}
page.js
const app = getApp()
onLoad: function(){
wx.getStorage({
this.deal(res)
},
fail: ()=>{
app.callBack = this.deal
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
就page.js get的时候用异步么
没看懂
取的到,就用。取不到,就传个回调给app.js
用同步也一样
let ret = wx.getStorageSync('xxx')
if(ret){
} else {
我调用了app的一个函数 return undefined
网络请求使用Promise进行封装,然后App上实现一个预取接口数据的存储Map,再加上一个事件通知方法,这样在Page上就能根据有无数据,与通知刷新方式进行接口数据的及时更新。
可以看下这个:https://juejin.im/post/5bc70e275188255c5f541da1#heading-20
如果app.js中数据还没有加载完成,那么这个页面急着用可以再调接口去取数据啊等待数据返回后再执行后面的操作。
我感觉还是setTimeout 靠谱
你这里setTimeout不稳定,我觉得主要是网络环境不同所需要的取数据的时间不同,那你就没法准确的拿到缓存里的数据。
关注后,可在微信内接收相应的重要提醒。
请使用微信扫描二维码关注 “微信开放社区” 公众号
这问题见过好多好多遍了。。
app.js
onLaunch:function(){
wx.request({
success: res=>{
wx.setStorage({
key:'xxx',
value:res.xxxxx
})
typeof(this.callBack) && this.callBack(res.xxxxx)
}
})
}
page.js
const app = getApp()
onLoad: function(){
wx.getStorage({
key:'xxx',
success: res=>{
this.deal(res)
},
fail: ()=>{
app.callBack = this.deal
}
})
}
就page.js get的时候用异步么
success: res=>{
this.deal(res)
},
fail: ()=>{
app.callBack = this.deal
}
没看懂
取的到,就用。取不到,就传个回调给app.js
用同步也一样
onLoad: function(){
let ret = wx.getStorageSync('xxx')
if(ret){
this.deal(res)
} else {
app.callBack = this.deal
}
}
我调用了app的一个函数 return undefined
网络请求使用Promise进行封装,然后App上实现一个预取接口数据的存储Map,再加上一个事件通知方法,这样在Page上就能根据有无数据,与通知刷新方式进行接口数据的及时更新。
可以看下这个:https://juejin.im/post/5bc70e275188255c5f541da1#heading-20
如果app.js中数据还没有加载完成,那么这个页面急着用可以再调接口去取数据啊等待数据返回后再执行后面的操作。
我感觉还是setTimeout 靠谱
你这里setTimeout不稳定,我觉得主要是网络环境不同所需要的取数据的时间不同,那你就没法准确的拿到缓存里的数据。