小天管理 发表于 8月23日 Share 发表于 8月23日 async function async1() { async2().then(() => { console.log('async1 end'); }); } async function async2() { return new Promise((resolve, reject) => { resolve(); }) } async1(); new Promise(function(resolve) { resolve(); }).then(function() { console.log('promise2'); }) 输出结果为 promise2 async1 end (面试时候遇到的,去掉了无关的 log) 想知道为什么 promise2 早于 async1 end ? 我的想法是 async2() 的 then 方法早于 new Promise 的 then 方法执行,那么其回调函数就应该先被放入微任务队列,也就应该先被执行,但实际情况不是这样。 另外,如果我把 async1 和 async2 的 async 关键字去掉,那么输出就变为 async1 end promise2 求大佬解答 引用 意见的链接 分享到其他网站 More sharing options...
已推荐帖子
加入讨论
您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.