本文介紹了為什么ClearInterval不在Heroku立即停止的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我在Heroku托管了我的應用程序,我想在某種情況下停止setInterval函數。它在我本地的電腦上運行得很好,但在Heroku上卻不行。在Heroku中,滿足newEndX >= 800
條件并調用clearInterval(intervalID)
后,我的";updateLine()";函數仍被調用三次;
為什么仍然調用";updateLine()";,為什么調用了三次?Heroku與我們的本地計算機的工作方式是否不同?
intervalID = setInterval(function () {
if (newEndX < 800) {
updateLine();
}
if (newEndX >= 800) {
clearInterval(intervalID);
alert("You reached the end of the canvas. Please click 'reset' button to startover.")
console.log("reached the end of the canvas.")
console.log("The final startX is", newStartX);
console.log("The final endX is", newEndX);
}
}, 200);
更新:該問題可能是由于Heroku或我的瀏覽器中的一些未知問題造成的。這段代碼在我同學的電腦和他的Heroku頁面上運行良好。
推薦答案
setInterval是一個為請求形成隊列Java腳本函數。即使發生錯誤,它也不會停止,直到它被清除。這是由于瀏覽器的內部計時器以及setInterval隊列中的請求延遲造成的。
如果延遲增加,則setInterval不會停止并反復調用該函數。
這篇關于為什么ClearInterval不在Heroku立即停止的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,