• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

微信小程序学习Course7定时器功能

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

微信小程序学习Course 7 定时器功能

 

微信小程序中有一个定时器API函数,其提供了四个API接口

 

7.1、number setTimeout(function callback, number delay, any rest)

设定一个定时器,在定时到期以后执行注册的回调函数,值得注意的是本函数只执行一次!!!!

    setTimeout(this.DaoJiShi, 1000);//时间到达一秒执行一次DaoJiShi函数

  

如果我们想实现一个不停调用的函数,怎末实现呢?以下函数利用递归实现了一个倒计时功能,每隔一秒更新以下倒计时时间。

Onload:function(){    
    this.DaoJiShi();//执行DaoJiShi函数
    setTimeout(this.DaoJiShi, 1000);//设置每隔一秒执行一次倒计时函数。
}
//以下为倒计时函数声明
//值得注意的是函数末尾又调用了设定倒计时函数,实现了一个递归。不停的调用。
DaoJiShi:function(){
    let newTime = new Date().getTime();
    let endTime = new Date(this.data.actEndTimeList).getTime();
    //console.log(endTime);
    //console.log(newTime);
    //console.log(endTime - newTime);
    if(endTime-newTime > 0){//如果未达到时间
      let Time = (endTime - newTime)/1000;//换算时间
      let day = parseInt(Time / 3600 / 24) ;
      let hou = parseInt((Time % (3600 * 24) /3600));
      let min = parseInt((Time %3600) / 60);
      let sec = parseInt((Time % 3600) % 60);
      this.setData({ DaysRemain: day, HourRemain: hou, MinuteRemain: min, SecondRemain: sec });
    }else{
      this.setData({ DaysRemain: '0', HourRemain: '0', MinuteRemain: '0', SecondRemain: '0' });
    }
    setTimeout(this.DaoJiShi, 1000);
  },

  

7.2、clearTimeout(number timeoutID)

可取消由 setTimeout() 方法设置的定时器。此函数是与setTimeout() 所对应的函数。二者搭配可以设置一个闹钟,定时器设定函数可以设置多长时间后响铃,如果想提前取消闹铃则可以适应clear函数取消定时器设置。

 

7.3、number setInterval(function callback, number delay, any rest)

设定一个定时器,按照指定的周期(以毫秒计)来执行注册的回调函数。注意此函数是按照一定周期去调用回调函数的,所以对于上述倒计时显示的任务,我们也可以采取此函数来实现,而且这样更加方便。

 onLoad(){ 
    this.DaoJiShi();
    //setTimeout(this.DaoJiShi, 1000);
    setInterval(this.DaoJiShi,1000);
  },

  DaoJiShi:function(){
    let newTime = new Date().getTime();
    let endTime = new Date(this.data.actEndTimeList).getTime();
    //console.log(endTime);
    //console.log(newTime);
    //console.log(endTime - newTime);
    if(endTime-newTime > 0){//如果未达到时间
      let Time = (endTime - newTime)/1000;//换算时间
      let day = parseInt(Time / 3600 / 24) ;
      let hou = parseInt((Time % (3600 * 24) /3600));
      let min = parseInt((Time %3600) / 60);
      let sec = parseInt((Time % 3600) % 60);
      this.setData({ DaysRemain: day, HourRemain: hou, MinuteRemain: min, SecondRemain: sec });
    }else{
      this.setData({ DaysRemain: '0', HourRemain: '0', MinuteRemain: '0', SecondRemain: '0' });
    }
    //setTimeout(this.DaoJiShi, 1000);
  },

  

 

7.4、clearInterval(number intervalID)

可取消由 setInterval() 方法设置的定时器。

 

利用定时器可以完成一个倒计时的功能,代码在上面已经展示各位可以尝试一下。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
微信小程序wx.switchTab跳转到tab页面后onLoad里面的方法不执行发布时间:2022-07-18
下一篇:
微信小程序样式旋转发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap