setTimeout 如何在下面的时钟代码中像 setInterval 一样工作,甚至 setTimeout 只执行一次?
how setTimeout act like setInterval in the clock code below even setTimeout execute one time only?
请查看我的代码以了解问题!!!
这就是问题所在?
为什么他们使用 setTimeout 并且它只执行 1 次,而时钟需要一些像 setInterval 这样的方法连续执行?甚至 setInterval 在此代码中工作,但我的问题是 setTimeout 仅执行 1 次为什么它在此代码中工作?
为什么 1 秒 = 1000 而 500 毫秒?
请帮帮我
我将 setTimeout
更改为 setInterval
并且两者都有效 这使问题变得更大 如何在这个例子中两者做同样的事情,即使它们不一样?
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 秒,但是,显然这不是真的。
请查看我的代码以了解问题!!!
这就是问题所在?
为什么他们使用 setTimeout 并且它只执行 1 次,而时钟需要一些像 setInterval 这样的方法连续执行?甚至 setInterval 在此代码中工作,但我的问题是 setTimeout 仅执行 1 次为什么它在此代码中工作?
为什么 1 秒 = 1000 而 500 毫秒?
请帮帮我
我将 setTimeout
更改为 setInterval
并且两者都有效 这使问题变得更大 如何在这个例子中两者做同样的事情,即使它们不一样?
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 秒,但是,显然这不是真的。