setTimeout执行时间不准
时间: 2024-01-13 10:19:10 浏览: 86
利用setTimeout解决延时执行某操作
3星 · 编辑精心推荐
setTimeout执行时间不准是因为JavaScript是单线程的,它使用事件循环来处理异步操作。当调用setTimeout时,它会将回调函数添加到事件队列中,并在指定的延迟时间后执行。然而,由于JavaScript的事件循环机制,setTimeout的实际执行时间可能会受到其他任务的影响,导致延迟执行或执行时间不准确。
以下是一个使用setTimeout实现计时的例子:
```javascript
var start = new Date().getTime();
var count = 0; // 程序执行了秒数增加
var interval = 1000; // 间隔时间
function fun() {
count++;
var errorTime = new Date().getTime() - (start + count * interval) + "ms";
console.log(errorTime);
if (count < 10) {
setTimeout(fun, interval);
}
}
console.log("start", start);
setTimeout(fun, interval);
```
这个例子中,我们使用setTimeout来实现计时器,每隔1秒钟输出一个误差时间。注意,由于JavaScript的事件循环机制,实际执行时间可能会有一定的误差。
阅读全文