跳转到内容
彼岸论坛
欢迎抵达彼岸 彼岸花开 此处谁在 -彼岸论坛

[问与答] 一个 Promise/async/await 的执行顺序问题求助🙏


小天管理

已推荐帖子

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 方法执行,那么其回调函数就应该先被放入微任务队列,也就应该先被执行,但实际情况不是这样。

另外,如果我把 async1async2async 关键字去掉,那么输出就变为

async1 end
promise2

求大佬解答

意见的链接
分享到其他网站

加入讨论

您现在可以发表并稍后注册. 如果您是会员,请现在登录来参与讨论.

游客
回复主题...

×   粘贴为富文本.   粘贴为纯文本来代替

  只允许使用75个表情符号.

×   您的链接已自动嵌入.   显示为链接来代替

×   您之前的内容已恢复.   清除编辑器

×   您无法直接粘贴图片.要从网址上传或插入图片.

  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

    没有最新的状态更新
  • 最近查看

    • 没有会员查看此页面.
×
×
  • 创建新的...