es6 Promise的值的问题

var p = Promise.resolve(2).then(() => {
    console.log(2, p);
    console.log(1);
    return 3;
});
console.log(1, p);

bVbyULG.webp.jpg

从打印结果可以看出
console.log(1, p);
执行后[[PromiseValue]]: 3
但此时p的then方法中注册的回调函数还没执行呢,为什么返回值3就已经可以得到了?

有没有懂的朋友能帮助讲解一下,十分感谢...

阅读 1.6k
1 个回答

你把鼠标放在后面那个 “!” 上就可以看到为什么了。

下面打印出来的值是在你展开这个对象的时候计算的,并不是打印时的值。

你展开这个对象的时候,所有的运行都结束了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题