const syncBody = (resolve: any, reject: any) => { console.log("sync body start") resolve("ok") console.log("sync body end") } const asyncBody = (resolve: any, reject: any) => { console.log("async body start") setTimeout(() => { console.log("timeout start") resolve("ok") console.log("timeout end") }, 1000) console.log("async body end") } console.log("create promise start") let p = new Promise((resolve, reject) => { console.log("promise body start") syncBody(resolve, reject) console.log("promise body end") }) console.log("create promise end") console.log("specify promise.then start") p.then((x) => { console.log("resolved", x) }) console.log("specify promise.then end")