第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

為什么 setInterval 不相應(yīng)地工作?

為什么 setInterval 不相應(yīng)地工作?

茅侃侃 2024-01-18 16:41:17
我正在嘗試制作秒表 (00:00:00:00)。但我的一秒比真正的一秒慢。 我還將 setInterval 10 的值更改為 1,但沒有任何變化。當(dāng)我將其更改為 100 時(shí),它起作用了,時(shí)間流得更慢了。 (00:00:00:00)=(hh:mm:ss:ms) 這是我代碼的一部分:const [time, setTime] = useState({  ms: 0,  ss: 0,  mm: 0,  hh: 0})let degisenMs = time.ms,  degisenH = time.hh,  degisenM = time.mm,  degisenS = time.ss;const run = () => {  if (updatedMs === 100) {    updatedS++;    updatedMs = 0  }  if (updatedS === 60) {    updatedM++;    updatedS = 0;  }  if (M === 60) {    updatedH++;    updatedM = 0  }  updatedMs++;  return (setTime({    ms: updatedMs,    ss: updatedS,    mm: updatedM,    hh: updatedH  }))}const start = () => {  setStatus(1)  run()  setInterv(setInterval(run, 10))}
查看完整描述

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)

}


查看完整回答
反對 回復(fù) 2024-01-18
  • 1 回答
  • 0 關(guān)注
  • 165 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號