async function async1() { console.log("async1 start"); await async2(); console.log("async1 end"); } async function async2() { setTimeout(() => { console.log('timer') }, 0) console.log("async2"); } async1(); console.log("start")

参考答案

解析

定时器始终还是最后执行的,它被放到下一条宏任务的延迟队列中。

结果

'async1 start'
'async2'
'start'
'async1 end'
'timer'