- js是一门单线程的语言
- 同步任务放到执行栈中依次执行
- 异步任务放到消息队列中
- 等同步任务执行完后,把异步任务的回调push到执行栈中
- 宏任务是类似于setTimeout之类的
- 微任务是类似于promise,nextTick之类的
- 先执行微任务,再执行宏任务
- 总的来说,就是先执行同步任务,在执行微任务,最后执行宏任务
例:
console.log(1)
new Promise((resolve, reject) => {
console.log(3)
resolve()
}).then(() => {
console.log(4)
}).then(() => {
console.log(5)
})
setTimeout(() => {
console.log(6)
}, 0)
console.log(2)
输出结果 132456
|