问题:
在 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中文网其他相关文章!