1 宏任务 常见的有setTimeout ,setInterval等
2 微任务 常见的有Promise, process.nextTick等
执行过程:js执行时,首先从macrotask queue中取出第一个宏任务,执行完毕后,从microtask中取出所有微任务执行,接住再从macrotask中取出一个宏任务执行。
script
//宏任务
setTimeout(()=>{
console.log(1)
})
//微任务
new Promise((resolve,reject)=>{
console.log(2)//同步任务
resolve(3)
}).then(data=>{
console.log(4)
})
script
//结果:2,4,1
过程:script为最大一层宏任务,执行完毕后执行所有微任务,再继续执行宏任务队列第一个任务。