在这个例子中计时器如何倒计时?代表 new Date().getTime() 的日期如何大于 nextDate ?任何人都可以解释一下吗?
how timer count down in this example ? how date which represent new Date().getTime() is greater than nextDate ? could any one explain that pls?
日期如何大于 nextDate ??
谁能解释清楚这段代码是如何工作的?
const controlTime = () => {
let second = 1000
let date = new Date().getTime()
let nextDate = new Date().getTime() + second
let interval = setInterval(() => {
date = new Date().getTime()
if (date > nextDate) { // how date is greater than nextDate ??
setDisplayTime((prev) => {
return prev - 1
})
nextDate += second // how it will be as a result ???
}
}, 30)
}
首先,函数 setDisplayTime
和 var prev
没有包含在你的代码中,所以我无法准确解释,但我可以从函数名推断出它改变了 UI.
某处的显示时间
但是,对于您问题的其他方面:
date
最终会变得大于 nextDate
因为在 setInterval
函数期间,日期变量每 30 毫秒(不是你在评论中说的秒,计时器在JS 以毫秒为单位工作)。 nextDate
仅在不断增加的 date
变量超过存储在 nextDate
.
中的当前值时才会更新
nextDate += second
是nextDate = nextDate + second
的简写增量计算。此代码将一秒(或在第二个变量中设置的 1000 毫秒)添加到 nextDate
并使用更新后的值重置同一变量。因此,它再次大于 date
,因此我们的检查每 30 毫秒再次运行一次,并且只要代码为 运行.
就会重复一次
日期如何大于 nextDate ??
谁能解释清楚这段代码是如何工作的?
const controlTime = () => {
let second = 1000
let date = new Date().getTime()
let nextDate = new Date().getTime() + second
let interval = setInterval(() => {
date = new Date().getTime()
if (date > nextDate) { // how date is greater than nextDate ??
setDisplayTime((prev) => {
return prev - 1
})
nextDate += second // how it will be as a result ???
}
}, 30)
}
首先,函数 setDisplayTime
和 var prev
没有包含在你的代码中,所以我无法准确解释,但我可以从函数名推断出它改变了 UI.
但是,对于您问题的其他方面:
date
最终会变得大于 nextDate
因为在 setInterval
函数期间,日期变量每 30 毫秒(不是你在评论中说的秒,计时器在JS 以毫秒为单位工作)。 nextDate
仅在不断增加的 date
变量超过存储在 nextDate
.
nextDate += second
是nextDate = nextDate + second
的简写增量计算。此代码将一秒(或在第二个变量中设置的 1000 毫秒)添加到 nextDate
并使用更新后的值重置同一变量。因此,它再次大于 date
,因此我们的检查每 30 毫秒再次运行一次,并且只要代码为 运行.