为了账号安全,请及时绑定邮箱和手机立即绑定

什么时候会检查 Promise 的状态呀?

什么时候会检查 Promise 的状态呀?

繁花如伊 2019-05-11 17:10:59
varp2=newPromise(resolve=>{setTimeout(()=>{resolve()},2000)})varp1=newPromise(resolve=>{resolve(p2)})p1.then(data=>{console.log('p1')})p2.then(data=>{console.log('p2')console.log('p1status',p1)//这里在浏览器输出的是pending状态Promise.resolve().then(()=>{console.log('here')//然后这里会优先于p1.then()输出})})因为p1的状态是根据p2的状态来决定的嘛,然后啊,我在p2.then()里面调用Promise.resolve().then()都会比p1.then()优先输出。为什么呀?我猜是在下一个事件循环的时候才会去修改p1的状态?有大佬指点一下吗,万分感激~
查看完整描述

2 回答

?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

在同一次循环中检测,但是也是有先后顺序的。
...
p1.then(data=>{
console.log('p1')//p1fulfilledcallback
})
p2.then(data=>{
console.log('p2')
console.log('p1status',p1)//这里在浏览器输出的是pending状态
Promise.resolve()//p3fulfilled
.then(()=>{//p3fulfilledcallback
console.log('here')//然后这里会优先于p1.then()输出
})
//p1fulfilled
})
                            
查看完整回答
反对 回复 2019-05-11
  • 2 回答
  • 0 关注
  • 667 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号