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(()=>{//p3fulfilledcallbackconsole.log('here')//然后这里会优先于p1.then()输出})//p1fulfilled})
添加回答
举报
0/150
提交
取消
