for (var i = 0; i < qiang.length ; i++) { doommList.push(new Doomm(qiang[i].text, Math.ceil(Math.random() * 100), Math.ceil(Math.random() * 10), qiang[i].color, qiang[i]._id)); page.setData({ doommData: doommList }) console.log("xunhuan ",wx.getStorageSync('pd')); if (wx.getStorageSync('pd')>0){ break; } } |
这个是子页面的一个死循环代码,我想着返回上一页的时候吧这个缓存pd变成1,这个死循环不就停止了么,但是。。。在上个页面打印的是1,在这个还在循环的函数打印出来却还是0,这是为什么,为啥取到的还是以前的缓存啊
可以换个思路测试下,不要读缓存,虽然你用的同步,用app.globalData试试,还有setData最好不要放到循环里面。
循环页面
onUnload/onHide
: function(){
wx.setStorageSync('pd', 1);
console.log("xiugai",wx.getStorageSync('pd'));
}
哈哈哈哈 他一直在循环里 根本不会执行你把pd设为1的操作哦。。js的单线程特色~
但是返回上个页面的时候设置了一下,在上个页面里打印出来是1啊,就算他是单线程取缓存的时候他应该是取的新的啊,不是跟全局变量一样么,返回上个页面代码
onShow: function(){
wx.setStorageSync('pd', 1);
console.log("xiugai",wx.getStorageSync('pd'));
}
能做个代码片段吗
https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html
我好像掉进我的思路里爬不出来了,求赶紧把我刷新一边
wechatide://minicode/a07de76a27e3e7836c4ea39d72f75eda
这样就行了么
好像不是
有没有大佬解释下啊,求解释
同求