文章目录
前言
大家都知道,setTimeout是延迟执行函数,而setInterval就像一个定时器,每间隔一定时间就触发一次回调。
今日面试中,面试官问了我一个问题,为什么要用setTimeout去实现setInterval呢?
再一次被自己菜哭,面试完成后,赶紧去查了查为什么,下面让我们一起看一看setInterval会导致些什么问题吧!
一、setInterval存在的问题
1.问题复现
让我们先来看下面这一串代码:
let startTime = new Date().getTime();
let count = 0;
setInterval(function () {
count++;
console.log(
`与原设定的间隔时差了${
new Date().getTime() - (startTime + count * 1000)
}毫秒`
);