收藏
回答

缓存问题大家帮我解释下,有点蒙

就是一个循环,要是条件不满足就一直走下去,但是跳转了页面它还走,所以我想把他停止了,就用了从缓存里面去取一个值来结束他,当返回到上级页面的时候,缓存值重新被赋值为1,但是正在后台死循环的这个函数打印出来一直是0 还是结束不了

<navigator class="kuang" url="../gerenyemian/grzym/qiang/qiang">

 <image class ="gr_image" mode="aspectFit" src="../../image/qiang.png"></image>

  <view class="text">吐槽表白弹幕墙</view>

  <view class="right-arrow"></view>

 </navigator>

上面是跳转到这个死循环的方式。

onShow: function(){

   wx.setStorageSync('pd', 1);

   console.log("xiugai",wx.getStorageSync('pd'));

 }

上面是返回的时候从父页面的onshow方法里改变缓存的值

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;

           }

             

          }

上面是死循环的一个函数,doommList.push这个处理东西的可以忽略


最后一次编辑于  02-13  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

2 个回答

  • 97
    97
    02-13

    弹幕哎

    02-13
    赞同
    回复
  • Smile
    Smile
    02-13

    单纯看你的第三断代码是不可能无限循环的,除非你还有函数不停地执行第三断代码,js是单线程的,wx.setStorageSyncwx.getStorageSync是同步的,这两个过不了,后面的所有代码就执行不了了,很可能这里出问题了,应该要按官方例子那样写:

    try {

        wx.setStorageSync('pd', 1);

    } catch (e) {}

    let pd = null;

    try {

        pd = wx.getStorageSync('pd');

    } catch (e) {}

    console.log(pd);


    onUnload () {

        this.timer && clearTimeout(this.timer);

    },

    setDoomm () {

        let doommList = this.data.doommList;

        let qiang = this.data.qiang;

        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));

        }

        // 此处有问题,不应该写在上面循环体里面,性能优化

        this.setData({ doommData: doommList });

    },

    // 假设此处为你不停执行的函数,类似不停执行请求的函数

    getQiang () {

        this.timer = setInterval(() => {

            this.setData(qiang: qiang, () => {

                this.setDoomm();

            });

        }, 1);

    }


    02-13
    赞同
    回复