Javascript - 如果没有 setInterval 函数,这个时钟函数如何更新时间?

标签 javascript time settimeout setinterval

我认为 startTime 只被调用一次,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('time').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;
}

starTime()

最佳答案

函数最后调用自己:

var t = setTimeout(startTime, 500);

每当调用该函数时,都会设置另一个超时。它有效地充当 setInterval,但这样做也允许您仅在特定条件下设置超时。

关于Javascript - 如果没有 setInterval 函数,这个时钟函数如何更新时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044986/

相关文章:

javascript - 如何在 javascript 中使用 setTimeout 考虑延迟

Javascript 目标 href 和类

javascript - 在节点边缘对齐标记 D3 强制布局

javascript - 如何从HTTP成功函数返回数据

javascript - 如果调用了 .bind() 函数,是否无法判断函数是否为生成器函数?

r - 如何仅选择r中数据帧每年出现的个体

html - 在 html5 <time> 元素的 datetime 属性中同时使用日期和持续时间

javascript - moment.js add 不添加时间

javascript - setTimeout 不同步运行

javascript - 事件处理程序中的 setTimeout