setinterval和this.setdata的使用

功能需求:

每隔1分钟获取服务器端数据并展示在前端小程序页面上。

wxml忽略。

js:

data:{
   //前段循环获取net数组的内容,展示到前段
    net:[],
//用于存放setinterval返回的id
    intervalnum:null
},
 // 用于线路占用监控
    get_net30(){
        wx.request({
            url: ‘https://yunwei.hbunion.com/network/wx_net_main30_chart.php’,
            method:’GET’,
            data:null,
            dataType:’json’,
              //由于使用箭头函数,所以其中可以使用this变量。
            success:(res)=>{
               //刷新data中定义的数组net
                this.setData({
                    net:res.data
                })
            }
        })
    },
//小程序加载时就获取后端数据
   onLoad(options) {
        this.get_net30()
    },
//点击当前tab时开始定时器。
    onShow() {
//判断intervalnum变量是否为true,空值是false。
        if(this.data.intervalnum){
              //如果开始计时前,改值已经有了,停止执行之前的setinterval
            clearInterval(this.data.intervalnum)
        }
        this.setData({
            //开始计时。
            intervalnum:setInterval(()=>{this.get_net30()},60000)
        })
    },
    onHide() {
         //离开tab时,停止执行setinterval
        if(this.data.intervalnum){
            clearInterval(this.data.intervalnum)
        }
    },

setinterval和this.setdata的使用》有1个想法

  1. 为何用这种写法?
    intervalnum:setInterval(()=>{this.get_net30()},60000)
    如果改为这样可以么?
    intervalnum=setInterval(this.get_net30,60000)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注