1.进入到 async1,发现同步任务,输出'async1 start' 2.遇到了await,进入到async2,碰到定时器,加入到异步队列里面的宏任务 3.在async2 有一个同步任务 直接输出'async2' 4.由于await 阻塞了后面代码的执行 将后面的代码加入微任务 所以向下去找 5.碰到了定时器 加入到宏任务里 6.碰到同步任务 输出'start' 7.同步代码执行完毕 先执行微任务 8.先输出微任务里面的 同步任务 输出'async1 end' 9.微任务里面有定时器 加入到宏任务里 10.微任务执行完毕 执行宏任务 11.宏任务队列里面有3个任务 12.按照顺序执行 timer2=>timer3=>timer1 async 函数 1.函数返回值返回Promise对象 2.Promise对象结果由async里面的返回值决定 await函数 1.必须写在async里面 2.如果遇到await函数 函数后面的代码会被阻止 加入微任务队列里面