//1 7 2 3 8 4 6 5 0
/*
1 7
宏:[0]
微: [2,8]
取出2 因为resolve()立马执行promise,立刻输出3
1 7 2 3
宏:[0]
微: [8,4,6]
取出8 继续resolve()立马then,输出4,此时返回undefined给外层then,接着执行6
1 7 2 3 8
宏:[0]
微: [4,6]
1 7 2 3 8 4
宏:[0]
微: [6,5]
*/
setTimeout(()=>{
console.log("0")
},0)
new Promise((resolve,reject)=>{
console.log("1")
resolve()
}).then(()=>{
console.log("2")
new Promise((resolve,reject)=>{
console.log("3")
resolve()
}).then(()=>{
console.log("4")
}).then(()=>{//执行这个then就执行完了,返回undefined 将console.log("5")缓存起来
console.log("5")
})
}).then(()=>{
console.log("6")
})
new Promise((resolve,reject)=>{
console.log("7")
resolve()
}).then(()=>{
console.log("8")
})