await后跟promise和非promise的两种情况下的执行顺序问题

请看下面代码:

async function f1(){
    console.log(1)
    console.log(await 5)
    console.log(6)
}
async function f2(){
    console.log(3)
    console.log(await 7)
    console.log(8)
}
f1()
console.log(2)
f2()
console.log(4)
//执行顺序:1,2,3,4,5,6,7,8

可是当我把await 5换成await Promise.resolve(5)时,执行顺序就变了。

async function f1(){
    console.log(1)
    console.log(await Promise.reslove(5))
    console.log(6)
}
async function f2(){
    console.log(3)
    console.log(await 7)
    console.log(8)
}
f1()
console.log(2)
f2()
console.log(4)
//执行顺序:1,2,3,4,7,8,5,6

其结果不同了。但是await后跟非promise不是可以把数据包装成promise的吗?为什么在执行顺序上反而不一样呢?

阅读 2.4k
1 个回答

image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题