async function main() { setTimeout(() => { console.log(1) }, 0) async function timeout() { const a = await new Promise((res, rej) => { setTimeout(() => { console.log(2) res(3) }, 0) }) console.log(a) } await timeout() console.log(4) } main()