首頁 >web前端 >js教程 >如何在 JavaScript 循環中實現延遲以防止重疊迭代?

如何在 JavaScript 循環中實現延遲以防止重疊迭代?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-22 22:57:14575瀏覽

How Can I Implement Delays in JavaScript Loops to Prevent Overlapping Iterations?

在JavaScript 循環中實現延遲

問題:

在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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn