微信小程序中定時器同步


功能開發中,難免要涉及使用定時器,但定時器有作用域,經常遇到需要將定時器功能同步操作的問題,即定時器全局化,此時可以在data中定義變量來實現

Page({
  data: {
    timer: '',//定時器名字
    countDownNum: '60'//倒計時初始值
  },
  onShow: function () {
    //什么時候觸發倒計時,就在什么地方調用這個函數
    this.countDown();
  },
  countDown: function () {
    let that = this;
    let countDownNum = that.data.countDownNum;//獲取倒計時初始值
    //如果將定時器設置在外面,那么用戶就看不到countDownNum的數值動態變化,所以要把定時器存進data里面
    that.setData({
      timer: setInterval(function () {//這里把setInterval賦值給變量名為timer的變量
        //每隔一秒countDownNum就減一,實現同步
        countDownNum--;
        //然后把countDownNum存進data,好讓用戶知道時間在倒計着
        that.setData({
          countDownNum: countDownNum
        })
        //在倒計時還未到0時,這中間可以做其他的事情,按項目需求來
        if (countDownNum == 0) {
          //這里特別要注意,計時器是始終一直在走的,如果你的時間為0,那么就要關掉定時器!不然相當耗性能
          //因為timer是存在data里面的,所以在關掉時,也要在data里取出后再關閉
          clearInterval(that.data.timer); 
          //關閉定時器之后,可作其他處理codes go here
        }
      }, 1000)
    })
  }
})

來源:https://blog.csdn.net/admin_web/article/details/94838915


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM