setInterval 有时会变得不可靠和不准确

setInterval will become unreliable and inaccurate sometimes

有时,我发现 setInterval 会不准确且不可靠。

例如,

let time = document.querySelector("div");
setInterval(function () {
  console.log(window.getComputedStyle(time).getPropertyValue("opacity"));
  time.textContent = parseFloat(time.textContent) + 1;
}, 1);
<div>0</div>

计时器比 1 毫秒慢得多,这意味着 setInterval 无法正常工作。

为什么会这样?

setInterval 更好更可靠的替代方案是什么?

感谢任何回复!

javascript中的setTimeout和setInterval只是保证在特定时间之前不会运行。他们试图尽快执行你的功能,但有时他们做不到。他们不是计时器。它们是一些在调用回调函数之前等待的最短时间后调用回调的函数。不幸的是,javascript 中没有准确的计时器。你可以自己实施。
编辑:您可能会问如何:
阅读以下主题: