- macro-task(宏任务):包括整体代码script,setTimeout,setInterval
- micro-task(微任务):Promise,process.nextTick
整体代码就是一个大的宏任务,从上至下执行,进入之后,先执行微任务,在执行宏任务
遇到console.log()、promise、new Promise()直接执行,但是遇到promise的then()会放到微任务队列然后执行console.log,再执行then()
console.log('1')
setTimeout(function () {
console.log('9')
new Promise(function (resolve) {
console.log('11')
resolve()
}).then(function () {
console.log('12')
})
console.log(3)
})
new Promise(function (resolve) {
console.log('7')
resolve()
}).then(function () {
console.log('8')
})
console.log(2)
执行结果为:1、7、2、8、9、11、3、12