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

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的状态?
有大佬指点一下吗,万分感激~
繁花如伊
浏览 668回答 2
2回答

慕田峪4524236

在同一次循环中检测,但是也是有先后顺序的。...p1.then(data=>{console.log('p1')//p1fulfilledcallback})p2.then(data=>{console.log('p2')console.log('p1status',p1)//这里在浏览器输出的是pending状态Promise.resolve()//p3fulfilled.then(()=>{//p3fulfilledcallbackconsole.log('here')//然后这里会优先于p1.then()输出})//p1fulfilled})
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript