console.log('start'); setTimeout(function() { console.log('timeout'); }, 0); Promise.resolve().then(function() { console.log('promisel'); }).then(function() { console.log('promise2'); }).then(() => console.log(`promise3`)) async function asyncFunc() { await asyncSubFunc(); Promise.resolve().then(x => { console.log('async end'); }) } async function asyncSubFunc() { console.log('async sub'); return Promise.resolve().then(() => { console.log('async sub promise'); }); } asyncFunc(); console.log('end'); 理想的预期输出: start async sub end promisel async sub promise async end promise2 promise3 timeout 实际浏览器控制台输出为: start async sub end promisel async sub promise promise2 promise3 async end timeout 问题1:await后的代码被执行完成后,为什么没有继续往下,而是继续执行微任务队列中的微任务? 问题2:await后(下一行)的代码会被放在微任务队列中执行,具体的执行时机是?