使用setTimeout 意外立即執行函數
在嘗試按特定時間間隔安排函數調用時,用戶遇到setTimeout 的問題儘管指定了超時,函數仍立即執行函數。 doRequest 函數應該每隔 10 秒呼叫一次,但它是立即呼叫的。
立即執行的原因在於 setTimeout 函數的呼叫方式。以下程式碼片段示範了這個問題:
在此程式碼中,doRequest 函數作為第一個參數傳遞給 setTimeout,但該函數是立即執行而不是被調度。
解決方案:
要解決此問題並確保 doRequest被調度,可以使用三種替代方法setTimeout:
將函數名稱作為字串傳遞:
使用匿名函數:
先傳遞函數名稱,然後傳遞參數:
以上是為什麼我的setTimeout函數立即執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!