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

為了賬號安全,請及時綁定郵箱和手機立即綁定

關于定時器多次啟動/關閉問題

為什么

setTimeout連續(xù)多次觸發(fā)之后,多次clearTimeout可以停止

setInterval連續(xù)多次之后,多次clearInterval停止不了

?

<input type = "button" value = "Start" onclick="startCount">

<input type = "button" value = "Stop" onclick="stopCount">

正在回答

1 回答

如果代碼你沒有進行更改的話,原代碼里i存儲的timeout的id只有最后一個觸發(fā)start函數(shù)的計時器,而其他任務都以異步調用的形式等待執(zhí)行,當他們再一次觸發(fā)回調函數(shù)的時候,i值就又存儲上計時器id了,所以會有多次點擊stop可以逐個取消掉的效果;

而setInterval的id只有調用該函數(shù)的時候才會喚起一次,而不是遞歸地調用setTimeout一樣“實時更新”變量i中存儲的id值。因此多次觸發(fā)setInterval函數(shù)后,變量i僅能存儲最后一次調用的setInterval函數(shù)的計時器id,無法再得知此前啟動的計時器id了,也就自然沒法通過clearInterval來取消掉。

如果想要保證每次啟動計時器的id都能被有效地存儲下來,可以考慮使用數(shù)組來存儲。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
JavaScript進階篇
  • 參與學習       468760    人
  • 解答問題       22376    個

本課程從如何插入JS代碼開始,帶您進入網(wǎng)頁動態(tài)交互世界

進入課程

關于定時器多次啟動/關閉問題

我要回答 關注問題
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

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