从浅入深的解决setTimeout,Promise,Promise.then的先后执行顺序。
如果你已经对for循环,作用域,闭包等很熟练了,那么请直接点击**这里“,进入到重点**中。
让我们从一个最简单的for循环入手
for (var i = 1;i <= 5;i ++) {
console.log(i)
}
//1,2,3,4,5
如果我们修改一下需求,要求每秒输出一次呢?(老生常谈)
for (var i = 1;i <= 5;i ++) {
setTimeout(function() {
console.log(i)
},i*1000)
}
//6,6,6,6,6
没错,是每隔一秒输出一次6,一共五次6(不是5呀老哥,虽然之前我也认为是5)
那么,怎么实现每隔一秒输出一次相对应的数字呢&