关于Promise的pending状态
var p = Promise.resolve(123);
var p1 = p.then(function(value){
console.log("p1")
});
var p2 = p1.then(function(value){
console.log("p2");
});
var p3 = p2.then(function(value){
console.log("p3");
});
console.log(p,p1,p2,p3);
打印出来p1,p2,p3都是pending状态,那为什么这些then函数还是会执行?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
因为
console.log(p,p1,p2,p3);
这句代码运行早了,还没改变状态你把下面代码加上试试
Promise.then是异步执行的,js执行了第一句就直接到最后console.log(p,p1,p2,p3);
然后 p1 , p2 , p3 对应的函数才执行。
应该改为