我正在使用一个名为timer.js的库,因为我想循环遍历一个数组,但希望在迭代之间有一个延迟
这是图书馆 github 的链接:https://github.com/husa/timer.js
我所做的是从timer.js的最小版本创建一个文件,并在我的主js文件之前在html正文中链接到它,如下所示:
<script src="./timer.js" charset="utf-8"></script>
<script src="./script.js" charset="utf-8"></script>
然后在主 js 文件中我创建了一个数字数组,我只想循环遍历它们,同时在 console.logs 之间有一个间隔:
var timer = new Timer();
var nums = [1,2,3,4]
for (var i = 0; i < nums.length; i++){
timer.start(5).on('end', function(){
console.log(i);
})
}
当我打开控制台日志时,我只记录了“4”。为什么 for 循环对其他索引不起作用。另外,有什么方法可以使用 forEach 函数重新创建它吗?
谢谢
最佳答案
I want to loop through an array, but want to have a delay between the iterations
根据迭代设置持续时间:
duration*iteration
setTimeout可以实现延迟,持续时间以毫秒为单位,假设2秒(2000ms),让我们在迭代中加1,这样第一次迭代就有延迟:
const nums = [1,2,3,4]
nums.forEach((n, i)=>{
setTimeout(()=>(
console.log(i)
), 2000*(i+1))
});
关于javascript - 尝试在 JavaScript 中使用 time.js 和 for 循环仅输出数组中的最终值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49616983/