我理解的Promise的概念:一个装在异步操作的容器。为什么最后依次输出Promise,Hi!,resolved。
2 回答

慕娘9325324
TA贡献1783条经验 获得超4个赞
promise的相关介绍可以看
MDN中关于Promise的介绍
至于你上面的输出结果
promise中有三个状态
pending: 初始状态,不是成功或失败状态。
fulfilled: 意味着操作成功完成。
rejected: 意味着操作失败。
console.log('Promise')是在初始状态,还不是异步操作,会先执行
然后是then发现是异步,直接跳过,再console.log('Hi')
最后才会执行fulfilled异步里的console.log('resolved')
虽然promise里有异步代码,但是它也是同步执行下去的

拉丁的传说
TA贡献1789条经验 获得超8个赞
感觉好像理解的地方不是重点,promise的异步执行在我看来是说:
当一个函数执行完之后呢,会有返回结果失败或成功(对应reject和resolve),有了结果就会自动执行先前设定好的代码.
new Promise中传入的function设定一个成功的条件,当条件成功后会执行resolve(),接着promise.then中的代码就会执行.
emmm大概就是这样.
添加回答
举报
0/150
提交
取消