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 把异步任务分为了两类
① 宏任务
② 微任务
先看看有没有宏任务,没有就执行结束,再看看有没有微任务,有微任务就执行所有的微任务,执行完再执行下一个宏任务,总之就是每一个宏任务执行完之后,都会检查是否存在待执行的微任务,如果有,就执行完所有的微任务,再继续执行下一个宏任务
因篇幅问题不能全部显示,请点此查看更多更全内容