問題:
在JavaScript while 循環中引入延遲通常會導致循環運行太快,導致不良結果。我們如何創建一個在迭代之間包含延遲的循環?
解決方案:
setTimeout() 函數雖然對於引入延遲很有用,但它是非阻塞的並且執行立即地。因此,循環中的多個 setTimeout() 呼叫將會重疊。
相反,我們可以利用遞歸循環模式來達到所需的效果。以下是一個範例:
var i = 1; // Set counter to 1 function myLoop() { // Create loop function setTimeout(function() { // Call 3s setTimeout when loop is called console.log('hello'); // Your code here i++; // Increment counter if (i < 10) { // If counter < 10, call loop function again myLoop(); // Trigger another setTimeout() } }, 3000) } myLoop(); // Start the loop
在此方法中,myLoop() 函數在 setTimeout() 回調中遞歸呼叫自身。每次迭代延遲 3 秒,確保循環的順序執行。
以上是如何在 JavaScript 循環中實現延遲以防止重疊迭代?的詳細內容。更多資訊請關注PHP中文網其他相關文章!