setTimeout、Promise、AsyncAwait的区别

mac2026-06-20  1

setTimeout

// 输出顺序:script start->script end->settimeout console.log("script start"); setTimeout(function(){ console.log("settimeout"); }) console.log("script end");

Promise Promise 本身是同步的立即执行函数,当executor中执行resolve或者reject的时候,此时是异步操作,会先执行then/catch等,当主栈完成后,才会去调用resolve/reject中存放的方法执行,打印p的时候,是打印的返回结果,

// 输出顺序: script start->promise1->promise1 end->script end->promise2->settimeout console.log('script start') let promise1 = new Promise(function (resolve) { console.log('promise1') resolve() console.log('promise1 end') }).then(function () { console.log('promise2') }) setTimeout(function(){ console.log('settimeout') }) console.log('script end')

async/await

// 输出顺序:script start->async1 start->async2->script end->async1 end async function async1(){ console.log('async1 start'); await async2(); console.log("async1 end") } async function async2(){ console.log("async2"); } console.log("script start") async1(); console.log("script end")
最新回复(0)