在控制台中发现一个很奇怪的问题,照理来说这两个打印的结果应该是相同且为resolve状态的吧。但是下面那个结果却是pending,然而点开里面的结果又是resolve。
是在想不通为什么会出现一个pending的状态
在控制台中发现一个很奇怪的问题,照理来说这两个打印的结果应该是相同且为resolve状态的吧。但是下面那个结果却是pending,然而点开里面的结果又是resolve。
是在想不通为什么会出现一个pending的状态
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
应该和async/await这个语法糖有关,因为await的时候,会跳出f2函数,继续执行
这个时候
a
是一个Promise
且还未 resolved,是pending状态,当宏任务队列执行完毕后,执行环境会回到f2()中,这时候继续.resolve('done')
,此后a
这个 Promise 就是 resolved 状态。打印的时候是 pending 状态,而你点开的时候已经是done啦。