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

Youareright
  • 10

请看下面代码:

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的吗?为什么在执行顺序上反而不一样呢?

回复
阅读 754
宣传栏