搜索
您的当前位置:首页同步任务和异步任务,宏任务和微任务

同步任务和异步任务,宏任务和微任务

来源:乌哈旅游

同步任务

  • 叫做非耗时任务,指的是在主线程上排队执行的那些任务
  • 只有前一个任务执行完毕了,才能执行后一个任务

异步任务

  • 叫做耗时任务,异步任务由 javascript 委托给宿主环境进行执行的
  • 当异步任务完成后,会通知 javascript 主线程执行异步任务的回调函数
console.log('A');

thenFs.readFile('./1.txt','utf8').then(res=>{console.log('B')})

setTimeout(()=>{
    console.log('C')
},0)

console.log('D')

分析:A和D是同步任务,会根据代码的先后执行顺序输出
C和B是异步任务,它们的回调函数会被加入到任务队列中,等同步任务执行完会依次执行异步任务(哪个异步任务先执行完哪个先输出)

什么是宏任务和微任务

javascript 把异步任务分为了两类
① 宏任务

  • 异步Ajax请求
  • setTimeout、setInterval
  • 文件操作
  • 其他。。。

② 微任务

  • Promise.then、.catch和.finally
  • process.nextTick
  • 其他。。。

执行顺序

先看看有没有宏任务,没有就执行结束,再看看有没有微任务,有微任务就执行所有的微任务,执行完再执行下一个宏任务,总之就是每一个宏任务执行完之后,都会检查是否存在待执行的微任务,如果有,就执行完所有的微任务,再继续执行下一个宏任务

因篇幅问题不能全部显示,请点此查看更多更全内容

Top