以下代码在控制台中显示请求的间隔与实际间隔之间的差异。
这是否使我们能够对事件循环的长度说出任何有意义的事情(从广义上讲,我对个别滴答声不是很感兴趣)?如果是这样,是什么?
var start, interval;
interval = 2000; // ms
function go() {
start = performance.now();
setTimeout(function() {
var end = performance.now();
console.log(end-start-interval);
go();
}, interval);
}
go();
答案 0 :(得分:2)
它没有。
原因之一是:一旦执行程序空闲,将调度回调。它可能是"所有的时间",除了一个案例,其中另一个回调可能恰好在你之前安排并接管执行,无论它想要多长时间。
在这种情况下,你的回调可能会延迟一段无限的时间,但这并没有告诉你关于"稳定状态"情况。