async function async1() { console.Log(' async1 start') await async2() console.Log(' async1 end') } async function async2() { console.Log(' async2') } console.log('script start') setTimeout(function () { console.Log(' setTimeout') }, 0) async1() new Promise(function (resolve) { console.log('promise1') resolve() }).then(function () { console.log('promise2') }) console.log('script end')