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

[问与答] 一个 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

求大佬解答

  • 游客注册

    游客注册

  • 会员

    没有会员可显示

  • 最新的状态更新

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

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