async和await在控制台中的返回问题

image.png
在控制台中发现一个很奇怪的问题,照理来说这两个打印的结果应该是相同且为resolve状态的吧。但是下面那个结果却是pending,然而点开里面的结果又是resolve。

是在想不通为什么会出现一个pending的状态

阅读 1.9k
1 个回答

应该和async/await这个语法糖有关,因为await的时候,会跳出f2函数,继续执行

const a = f2()
console.log(a)

这个时候 a 是一个 Promise 且还未 resolved,是pending状态,当宏任务队列执行完毕后,执行环境会回到f2()中,这时候继续 .resolve('done'),此后 a 这个 Promise 就是 resolved 状态。

打印的时候是 pending 状态,而你点开的时候已经是done啦。

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