async和await也属于异步任务中的微任务
值得注意的是,promise内部遇到resolve()和reject()调用的时候,会继续执行后面的代码,
但async内部遇到await的时候,只有当await右边跟随的代码执行完毕的时候,才会执行后面的代码,此时后面的代码也可以算作内部的微任务
如图:
首先执行同步任务 script start
然后执行微任务 async1 start
遇到了await 先执行右边的代码才会执行后面的代码
所以 接着是 async2
async1 end
最后执行宏任务 setTimeout