setTimeOut代码会在下一轮“事件顺序”开始执行,所以他都是最后输出的
//以下会在下一个事件顺序开始执行
setTimeout(function (){ //看到setTimeout就知道,一开始不会执行里面内容滴
var np = new Promise(function (resolve,reject){
//定义一个promise
console.log(1)
resolve() //执行成功的语句
})
np.then(_=>{
console.log(2)
})
console.log(3)
},1000)
var pro = new Promise((resolve, reject)=>{
console.log(5)
resolve()
}).then(_=>{
setTimeout(function (){
console.log(6)
},0) //若这个定时事件为1000的话,6就会最后输出 5,7,1,3,2,6
return 7;
}).then(n=>{
console.log(n)
})
//以下输出结果是 5,7,6,1,3,2
//7为啥比6先输出是因为它进入了setTimeout所以要等下一轮事件之后,才会执行