宏任务与微任务

 

宏任务

  • 异步Ajax请求

  • setTimeout、setInterval

  • 文件操作

  • 其他宏任务

微任务

  • Promise.then、.catch和.finally

  • process.nextTick

  • 其他微任务

执行机制:

setTimeoit(function(){
console.log('1')
})
new Promise(function(resolve){
console.log('2')
resolve()
}).then(function(){
console.log('3')
})
console.log('4')

正确执行顺序:2431

分析:

当promise中function以同步方式进行执行

  1. 先执行所有的同步任务

    • 执行宏任务promise函数和console.log('4')

  2. 再执行微任务

    • 执行console.log('3')

  3. 再执行下一个宏任务

    • 执行setTimeout函数

注释:优先执行微任务

posted @ 2021-10-08 11:52  ajaXJson  阅读(186)  评论(0编辑  收藏  举报