javascript - 如何使用 setTimeout 为每次迭代添加延迟?

标签 javascript

这会产生 2 秒的延迟并运行循环。我需要为每次迭代创建 2 秒的延迟,而不仅仅是一次。

var myArray = ['test1','test2','test3'];

function doSetTimeout(index) {
  setTimeout(function() { console.log(myArray[index]) }, 2000);
}

var index;
for (index = 0; index < myArray.length; ++index) {    
    doSetTimeout(index)
}

预期结果是:

test1 
(2 second delay)
test2 
(2 second delay)
test3

最佳答案

只需将延迟乘以指数即可

var myArray = ['test1','test2','test3'];

function doSetTimeout(index) {
  setTimeout(function() { console.log(myArray[index]) }, index * 2000;
}

var index;
for (index = 0; index < myArray.length; ++index) {
    doSetTimeout(index)
}

关于javascript - 如何使用 setTimeout 为每次迭代添加延迟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30552935/

相关文章:

javascript - html 将整个 Canvas 旋转90度

Javascript Redux 更新嵌套对象属性值

javascript - 如何将环境变量转换为JSON对象?

javascript - Puppeteer 通过 IP 连接

javascript - 迭代嵌套的 JSON 数组并更改属性的值

javascript - 洋红色。添加到购物车在 Internet Explorer 中不起作用

javascript - Google Docs 如何挂接 Ctrl-F 热键?

javascript - jquery一一显示div

javascript - AngularJS 未在网页上呈现 "AngularJSDemos"Dan Wahlin

javascript - 使用密码加密消息时,crypto-js 使用的 AES 参数和内部执行的步骤是什么?