The role of closure: Save Variable
A, i lost case
var arr = [ 'node', 'shock', 'mysql']
for(var i=0;i<arr.length;i++){
setTimeout(()=>{
console.log(arr[i])
},1000)
}
![](https://img2018.cnblogs.com/blog/1599581/201905/1599581-20190528102933698-616345.png)
Second, the solution
Use closures:
for(var i=0;i<arr.length;i++){
((i)=>{
setTimeout(()=>{
console.log(arr[i])
},1000)
})(i)
}