出现此问题是因为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)
}
网友评论