请查看我的代码以了解问题!!!
这就是问题所在?
为什么他们使用 setTimeout 并且它只执行 1 次,而时钟需要一些像 setInterval 这样的方法连续执行?甚至 setInterval 在此代码中工作,但我的问题是 setTimeout 仅执行 1 次,为什么它在此代码中工作?
为什么 1 秒 = 1000 时是 500 毫秒?
请帮帮我
我用 setInterval
更改了 setTimeout
并且两者都有效这使问题变得更大如何在这个例子中做同样的事情,即使它们不一样?
function startTime() {
var today = new Date();
var h = today.getHours();
var m = today.getMinutes();
var s = today.getSeconds();
m = checkTime(m);
s = checkTime(s);
document.getElementById('txt').innerHTML = h + ":" + m + ":" + s;
var t = setTimeout(startTime, 500);
}
function checkTime(i) {
if (i < 10) {i = "0" + i}; // add zero in front of numbers < 10
return i;
}
最佳答案
它的行为类似于
setInterval
,因为它每 0.5 秒递归调用一次自己:setTimeout(startTime, 500)
你是对的,它每 ~0.5 秒运行一次,而不是作为区域时钟运行 1 秒。也许他们认为
startTime
中的逻辑将花费 0.5 秒,所以合在一起将花费 1 秒,但是,显然这不是真的。
关于javascript - setTimeout 如何在下面的时钟代码中像 setInterval 一样工作,甚至 setTimeout 只执行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56720227/