警告:我听起来好像不知道我在这里说什么,因为我根本不知道。我正在通过大量的试验和错误编码来自学Javascript和AngularJS。

我有一些javascript代码(由于杂乱而在此处复制了粘合剂),它会返回具有以下结构的Object:

我要保存到变量的是与图片中的Object。$$ state.value相对应的对象。该对象具有用户名,哈希和盐,这是我关心的。我不知道其他所有东西,例如$$ state还是它们如何到达那里。

但是,如果执行此操作(将主对象称为“whatIHave”):

var whatIWant = whatIHave.$$state.value;

这是行不通的。 whatIWant为空。

有人知道这里发生了什么吗?什么是$$ state,它是如何到达那里的,如何提取所需的值?

最佳答案

因此,这是一个 promise 。您需要执行以下操作:

whatIHave.then(function(whatIWant) {
  // Work here
});

我强烈建议您研究什么是 promise (例如link)

如果您足够好奇,什么是$$state和什么是value,我将作一点解释:

许诺有一个$$state,并且angular将您要调用的所有回调函数保存在pending数组中(所有与我之前解释过的向.then注册的函数)。

它还具有以下状态:已解决(1)和已拒绝(2)

最后,当您对promise进行resolvereject编码时,您在执行此操作时传递的值将保存在value中。

您尝试在此处作弊,因为当您尝试访问该value时,它可能还不存在(这就是async的全部含义)。

因此,这个想法是学习Promise的基础,学习如何使用Promise,然后正确使用whatIHave

关于javascript - 如何访问JSON Object。$$ state.value?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30146045/

10-13 02:05
查看更多