如果不使用Promise对象的then方法,是否无法从Promise对象获取[[PromiseValue]]?

时间:2016-12-17 17:48:26

标签: javascript promise

本课题旨在成为规范性问题/答案;见What is a canonical question/answer, and what is their purpose?。这里没有明确的答案。代替先前被问及回答的问题,我在此处发布了问题。如果问题已经回答,将删除本课题。

Promises/A+州的point-2规范

  

promise 表示异步的最终结果   操作。与承诺互动的主要方式是通过   它的then方法,它注册回调以接收a   承诺的最终价值或承诺不可能的原因   满足。

此问题的comment return value from Promise OP问

  

是的,但是没有从承诺中获取价值,或者应该   我接受浏览器不可能这样做?

响应

  

犹豫是否说“不可能”。

然后提供指向规范PromisesYou're Missing the Point of Promises

的链接

除了在[[PromiseValue]]查看对象的属性值,而不使用Promise对象的{{}之外,是否无法从console.log(promiseObject)对象获取Promise 1}}方法?

1 个答案:

答案 0 :(得分:1)

ES7中不可能。 promise的值存储在[[PromiseResult]] internal slot

  

承诺已履行或拒绝的价值,如果   任何。仅在[[PromiseState]]不是"pending"时才有意义。

该插槽仅在PerformPromiseThen抽象操作中读取,该操作仅通过Promise.prototype.then公开。