实现倒计时的方法
一、使用setInterval实现
优点:简单,直接
缺点:有可能会造成倒计时不准,越来越快,
setInterval 缺点:
1.setInterval对自己调用的代码是否报错漠不关心。即使调用的代码报错了,它依然会持续的调用下去 。
2.间隔不准。假如定时器里面的代码需要进行大量的计算(耗费时间较长),或者是 DOM 操作。这样一来,花的时间就比较长,有可能前一次代码还没有执行完,后一次代码就被添加到队列了。也会到时定时器变得不准确
3.setInterval不能确保每次调用都能执行。可能会丢失一些任务。setInterval并不定时。如果它调用的代码执行的时间小于定时的时间,它会跳过调用,这就导致无法按照你需要的执行次数或无法得到你想要的结果
let count= 10
cosnt time = setInterval(()=>{
count--;
clearInterval(time );
},1000)
二、使用setTimeout实现
优点:不会出现倒计时不准的问题
缺点:代码多一点
const downTimeNum= ref()
const countdown= (seconds)=> {
if (seconds < 0) {
return
}
downTimeNum.value = seconds
setTimeout(()=> {
countdown(seconds - 1)
}, 1000)
}