亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

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

為什么

setTimeout連續多次觸發之后,多次clearTimeout可以停止

setInterval連續多次之后,多次clearInterval停止不了

?

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

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

正在回答

1 回答

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

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

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

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

舉報

0/150
提交
取消

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

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

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號