單次執行setInterval回呼:
考慮以下旨在建立計數器的程式碼:
function timer() { console.log("timer!") } window.setInterval(timer(), 1000)
考慮以下旨在建立計數器的程式碼:
但是,此程式碼僅執行計時器函數一次。讓我們深入研究為什麼會出現這個問題以及如何解決。 出現這個問題是因為 setInterval 的第一個參數應該是函式引用,而不是函式呼叫。在上面的程式碼中,timer() 被立即調用,傳回 undefined。因此,setInterval 設定為以 1000 毫秒的間隔呼叫 undefined,這導致單次執行而不是連續循環。function timer() { console.log("timer!"); } window.setInterval(timer, 1000);
為了修正這個問題,我們需要傳遞函數參考而不是呼叫函數。以下是修正後的程式碼:
在這個修正後的版本中,計時器作為參考傳遞,允許 setInterval 以指定的時間間隔呼叫它。window.setInterval( function() { console.log("timer!"); }, 1000)
或者,我們可以使用匿名函數作為回調:
這種方法更短,但當函數變得更多時,可讀性可能會降低複雜。 透過實施這些更改,計時器函數現在將按照所需的時間間隔重複執行,確保計數器連續運作。以上是為什麼我的'setInterval”回呼只運行一次?的詳細內容。更多資訊請關注PHP中文網其他相關文章!