微信缓存取值问题
发布于 6 年前 作者 yong55 2319 次浏览 来自 问答

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 回复

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

循环页面

onUnload/onHide

: function(){

   wx.setStorageSync(‘pd’, 1);

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

 }

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

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

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

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

回到顶部