小程序离开当前页面时,清除定时器问题

一、小程序离开当前页面时,会遇到清除定时器失效问题

 

解决方式:

// pages/setInter/index.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    myInterv: '', // 定时器
    cont: 0 // 数据
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    const self = this
    self.interval(() => {
      self.setData({
        cont: self.data.cont + 1
      })
      console.error(self.data.cont)
    }, 1000)
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () { // 后台运行清除定时器
    const self = this
    self.clearTimeInterval(self)
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () { // 关闭清除定时器
    const self = this
    self.clearTimeInterval(self)
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  interval (func, wait) { // 定时器
    const self = this
    var myInterv = setInterval(func, wait)
    self.setData({
      myInterv: myInterv
    })
  },
  clearTimeInterval (self) { // 清除定时器
    var myInterv = self.data.myInterv
    clearInterval(myInterv)
  }
})

js中注意:onHide onUnload 生命周期 定时器销毁


定时器:{{cont}}

二、如有帮助,敬请点赞。

你可能感兴趣的:(小程序)