JavaScript 如何在循环中添加延迟

JavaScript 如何在循环中添加延迟

JavaScript没有提供任何等待命令来给循环添加延迟,但我们可以使用 setTimeout 方法来实现。该方法在等待指定的毫秒数后执行一个函数。以下示例说明如何给不同的循环添加延迟:

  • 循环示例:
for (let i=0; i<10; i++) { 
   task(i); 
} 

function task(i) { 
  setTimeout(function() { 
      // 添加要执行的任务
  }, 2000 * i); 
} 

在上面给出的代码中,你必须在第8行做 2000 * i ,因为循环内的 setTimeout 方法不会使循环暂停,而是为每次迭代添加延迟。请记住,所有迭代同时开始计时。因此,如果我们只在那里做 2000 ,那么所有迭代都会一起执行,第一次迭代只会有2000毫秒的延迟,其他迭代将立即执行。因此,为了避免这种情况,我们对第一次迭代添加0,第二次迭代添加2000,第三次迭代添加4000,依此类推。

示例: 给定的程序会在每个数字后延迟2秒在控制台中打印0到9,使用for循环。

<script> 
for (let i=0; i<10; i++) { 
   task(i); 
} 
  
function task(i) { 
  setTimeout(function() { 
      console.log(i); 
  }, 2000 * i); 
} 
</script> 

输出:

JavaScript 如何在循环中添加延迟

  • While循环: 相同的概念被应用于以下给定的while循环。
let i = 0; 
while (i < 10) { 
  task(i); 
   i++; 
} 
function task(i) { 
  setTimeout(function() { 
      // 添加要执行的任务
  }, 2000 * i); 
} 

示例: 给定的程序会使用while循环,在每个数字后延迟2秒在控制台中打印0到9。

<script> 
let i = 0; 
while (i < 10) { 
  task(i); 
   i++; 
} 
function task(i) { 
  setTimeout(function() { 
      console.log(i); 
  }, 2000 * i); 
} 
</script> 

输出:

JavaScript 如何在循环中添加延迟

  • Do-while循环:同样的概念也适用于下面给出的Do-while循环。
let i = 0; 
do { 
  task(i); 
  i++; 
} while (i < 5); 
function task(i) { 
  setTimeout(function() { 
    // Add tasks to do 
  }, 2000 * i); 
} 

示例:下面的程序将使用do-while循环在2秒后打印每个数字0到9。

<script> 
let i = 0; 
do { 
  task(i); 
  i++; 
} while (i < 5); 
function task(i) { 
  setTimeout(function() { 
    console.log(i); 
  }, 2000 * i); 
} 
</script> 

输出:

JavaScript 如何在循环中添加延迟

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程