【微信小程序】使用setTimeout制作定时器的思路

setTimeout(func, time)可以使得每隔time毫秒就执行一次func函数,常用来做计时器/时钟。

下面是在微信小程序中的使用思路,只截取了关键部分代码。

复制代码
var timer; // 计时器

Page(
{ // ...省略
// 自定义的开始按钮 startBtn: function () { console.log("开始按钮"); Countdown(); },

  // 自定义的暂停按钮
pauseBtn: function () {
console.log("暂停按钮");
clearTimeout(timer);
},
});
// 倒计时 function Countdown() { timer = setTimeout(function () { console.log("----Countdown----"); Countdown(); }, 1000); };
复制代码

思路:

  • setTimeout()延迟指定毫秒数后执行指定函数,可通过递归调用setTimeout()来实现各种计时器功能。
  • 如果想做每秒钟刷新一次的时钟,只需每次执行时间转换函数并setData更新界面即可。
  • 使用clearTimeout("定时器的名字")可以停下指定的计时器。

下面是Javascript关于时间的转换函数。

复制代码
// 秒数 --> 时:分:秒
function formatTime(seconds) {
    return [
        parseInt(seconds / 60 / 60), //
        parseInt(seconds / 60 % 60), //
        parseInt(seconds % 60)       //
    ]
        .join(":")
        .replace(/\b(\d)\b/g, "0$1");
}
复制代码

另外,做定时重复调用函数的功能时,用setTimeOut()代替setInterval(),因为setInterval()是有误差的!详情参考

 

参考资料:

posted @   霍莉雪特  阅读(71629)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
点击右上角即可分享
微信分享提示