当前位置: 首页 > 知识库问答 >
问题:

双括号在javascript中是什么意思以及如何访问它们

唐元凯
2023-03-14

我有以下使用promise的函数。

var getDefinitions = function() {
    return new Promise(function(resolve) {
        resolve(ContactManager.request("definition:entities"));
    });
}

var definitions = getDefinitions()
Promise {
    [[PromiseStatus]]: "resolved",
    [[PromiseValue]]: child
}
var value = definitions.PromiseValue; // undefined

双括号[[]]是什么意思,以及如何检索[[PromiseValue]]的值。

共有1个答案

锺离穆冉
2023-03-14

我的问题是双括号[[]]是什么意思,以及如何检索[[PromiseValue]]的值。

是内部财产。您不能直接访问它。本机promise只能在中打开,然后在中打开promise,或者在一般情况下异步打开-请参见如何从异步调用返回响应。引用规范:

本规范对它们的定义纯粹是为了说明目的。ECMAScript的实现必须按照这里描述的方式在内部属性上生成和操作。内部属性的名称用双方括号[[]]括起来。当算法使用对象的内部属性而该对象未实现指示的内部属性时,将引发TypeError异常。

除非你自己制作Chrome或V8版本。也许在带有访问修饰符的ES7中。到目前为止,这是不可能的,因为它们不是规范的一部分,并且会在不同的浏览器之间中断-对不起。

getDefinitions().then(function(defs){
    //access them here
});
.catch(function(defs){
    //access them here
});

不过,如果我不得不猜测的话,首先您没有正确地转换API,因为这种转换只在方法是同步的(在这种情况下,不要返回promise)或者它已经返回promise,从而使它得到解析(这意味着您根本不需要转换,只需要return

 类似资料:
  • 问题内容: 我在jQuery文件中找到了这个: 花括号做什么? 问题答案: 在您的情况下,这是一个传递给CSS函数的对象。 在这里你也可以使用 这是物体的另一个例子

  • 我在React中看到了这段代码,比如 但我没能在谷歌上找到任何解释。也许这个问题是愚蠢的,但我感谢任何帮助,也许是链接到一些现有的解释或例子。

  • 问题内容: CSS 中的双冒号()是什么意思? 例如: 问题答案: 这意味着 伪元素 选择器。这意味着右边的 元素 在普通DOM中不存在,但是可以选择。 伪元素由两个冒号(::)组成,后跟伪元素的名称。 它最初只有一个冒号,而是改为从区分其 伪类 (如,,等)。最好使用for 和伪元素,因为单个冒号具有更好的浏览器支持,即在较早的IE版本中。

  • 本文向大家介绍双问号(??)运算符在PHP中是什么意思?,包括了双问号(??)运算符在PHP中是什么意思?的使用技巧和注意事项,需要的朋友参考一下 PHP 7添加了新的运算符双问号(??)运算符。在PHP 7中,双问号(??)运算符称为Null合并运算符。 如果它存在且不为NULL,则返回其第一个操作数;否则返回第一个操作数。否则,返回其第二个操作数。从左到右评估。Null合并运算符也可以链形式使

  • 问题内容: 在MySQL中“无符号”是什么意思,什么时候应该使用它? 问题答案: MySQL说: 所有整数类型都可以具有一个可选的(非标准)属性UNSIGNED。无符号类型可用于 仅允许一列中 使用 非负数, 或者 在您需要更大 的该列的 较高数字范围时 使用。例如,如果INT列为UNSIGNED,则该列的范围大小相同,但其端点从-2147483648和2147483647变为0和42949672

  • 问题内容: 一个简单的问题,但它已经困扰了我一段时间。 MySQL中的“开销”是什么,我应该担心吗? 单击“优化表”是否能真正解决问题? 问题答案: 开销似乎是数据库用来运行某些查询的临时磁盘空间,因此,您只需要担心这会变得非常高。 您可以将“优化表”与硬盘驱动器的碎片整理进行比较。 我引用: 随着时间的推移,每个数据库都需要某种形式的维护,以使其保持 最佳 性能水平。清除已删除的行,重新排序,压