请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

关于async函数返回Promise对象的问题

在fn1中直接return 100控制台会直接打印resolved状态下的Promise对象,但是return Promise.resolve(200) 在控制台先会打印pending下的Promise对象,鼠标点击展开该对象之后,才会展示出该对象的状态为resolved。这个原因是什么
图片描述
图片描述

正在回答 回答被采纳积分+3

2回答

双越 2023-04-07 08:56:49

打印出来的 state 都是 fulfilled 

第二个截图显示的 pending 是它的一个中间态,不是最终结果。

0 回复 有任何疑惑可以回复我~
  • 提问者 奔跑的南 #1
    那为什么通过Promise.resolve()返回的数据是会有中间态的出现,直接return一个值就不存在中间态
    回复 有任何疑惑可以回复我~ 2023-04-07 10:56:06
  • 双越 回复 提问者 奔跑的南 #2
    Promise.resolve() 要去创建一个 promise 实例,一开始就是 pending 状态
    回复 有任何疑惑可以回复我~ 2023-04-07 13:45:11
  • 提问者 奔跑的南 回复 双越 #3
    好的,谢谢老师
    回复 有任何疑惑可以回复我~ 2023-04-07 14:05:10
双越 2023-04-06 14:34:55

截图我看下

(chrome 打印的引用类型的属性,有时候是中间状态的。你可以转换为值类型打印,比较准确)

0 回复 有任何疑惑可以回复我~
  • 提问者 奔跑的南 #1
    由于评论不能放图片,我通过私信发给您了。
    回复 有任何疑惑可以回复我~ 2023-04-06 15:08:09
  • 双越 回复 提问者 奔跑的南 #2
    重新修改问题即可贴图
    回复 有任何疑惑可以回复我~ 2023-04-06 16:47:51
  • 提问者 奔跑的南 回复 双越 #3
    好的.
    回复 有任何疑惑可以回复我~ 2023-04-06 17:32:20
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信