1 回答

TA貢獻(xiàn)1809條經(jīng)驗(yàn) 獲得超8個(gè)贊
問題是這并不準(zhǔn)確,而是近似值。一種選擇是使用 Web Worker 來提高準(zhǔn)確性,如鏈接中所述,但這仍然不準(zhǔn)確。setInterval
在測量時(shí)間時(shí),最好跟蹤時(shí)間戳并計(jì)算出每次滴答/更新時(shí)經(jīng)過了多少時(shí)間。然后,您可以更新 UI 或觸發(fā)警報(bào)等。這是一些偽代碼。start
const [ startTime, setStartTime ] = useState(null)
const [ intervalId, setIntervalId ] = useState(null)
function tick() {
const now = new Date()
const elapsedMs = now - startTime
// Update UI etc using elapsedMs
}
function start() {
setStartTime(new Date())
// Run tick() every 100ms
setIntervalId(setInterval(tick, 100))
}
function stop() {
clearInterval(intervalId)
}
添加回答
舉報(bào)