/**
* @return {*}
* @description: Interval的封装 使用
* import { createScheduled, clearScheduled } from '@/hooks/useTimer'
* callback() 调用的函数 'timer' 定义定时器名称 3000 刷新的时间
* onMounted(() => {
callback()
createScheduled(
'timer',
() => {
callback()
},
3000
)
})
//销毁定时器
onBeforeUnmount(() => {
clearScheduled('timer')
})
*
*
*/
//定义空记录,用于存放参数信息
const timerObj = {};
//创建定时器,默认3秒刷新一次
export function createScheduled(
timerId,
callback,
delay = 3000
) {
clearInterval(timerObj[timerId]);
//setInterval()具有返回值,存放在记录里
timerObj[timerId] = setInterval(() => {
callback && callback()
}, delay);
}
// 清除指定定时器
export function clearScheduled(timerId) {
clearInterval(timerObj[timerId]);
}
// 清除所有定时器
export function clearAllScheduled() {
Object.keys(timerObj).forEach((key) => {
clearInterval(timerObj[key]);
});
}