for循环中settimemout()失效的解决办法
2019-12-20 本文已影响0人
雅雅的前端工作学习
出现此问题是因为timeout是一种类似于异步的函数,timeout中的函数还未执行时,for循环已经结束了,当指定的1秒过完,timeout中的函数才开始出发,而此时10个settimeout中的函数同时执行,故而同时打印出i,解决方法如下
var time=1000
for (let i=0;i<10;i++){
time+=1000;
setTimeout(function () {
console.log(i);
},time)
}