function timer(name, fn, time) {
if (timer[name]) {
// 判断定时器是否存在
clearInterval(timer[name]) // 存在则清除
}
timer[name] = setInterval(() => {
// 设置新的定时器
fn() // 执行传入的函数
}, time)
}
使用方法:
// 第一个定时器
timer('timer1', () => {
console.log('Timer 1 running...')
}, 1000)
// 第二个定时器
timer('timer2', () => {
console.log('Timer 2 running...')
}, 2000)
解释:
- timer函数接收三个参数:定时器名称、要执行的函数和时间间隔
- 首先判断是否已存在名称相同的定时器,如果存在则清除
- 然后使用setInterval设置新的定时器,并将定时器实例保存到以名称为key的对象上
- 这样可以通过名称清除和重置定时器
- 调用timer函数时只需传入名称、函数和时间间隔即可设置定时器
- 省去了手动维护定时器的实例,自动处理定时器的清除与重置
这是一个封装了自动清除和重置功能的定时器工具。通过给定时器一个名称,可以非常方便地设置、清除和重置定时器,避免因忘记清除定时器导致的内存泄漏问题。
使用工具函数封装常用功能,可以大大提高代码的清晰度和复用性。希望这个定时器工具函数对你有所启发。如果有任何疑问,欢迎在评论区提出。