微信缓存取值问题

发布于 7 年前作者 yong552484 次浏览最后编辑 7 年前来自 ask

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,这是为什么,为啥取到的还是以前的缓存啊

5 回复
qiang17
qiang171 楼6 年前

哈哈哈哈 他一直在循环里 根本不会执行你把pd设为1的操作哦。。js的单线程特色~

wei49
wei492 楼6 年前

循环页面

onUnload/onHide

: function(){

   wx.setStorageSync(‘pd’, 1);

   console.log(“xiugai”,wx.getStorageSync(‘pd’));

 }

nhan
nhan3 楼6 年前

主线程一直在执行死循环,返回父页面的时候,父页面的onShow方法应该是没被执行的。

测试代码片段:https://developers.weixin.qq.com/s/a7pwWcmf7I6g

xiulan55
xiulan554 楼6 年前

可以换个思路测试下,不要读缓存,虽然你用的同步,用app.globalData试试,还有setData最好不要放到循环里面。

yongsun
yongsun5 楼5 年前

有没有大佬解释下啊,求解释