当前位置: 首页 > 面试题库 >

如何获得已经解决的承诺价值?

谢豪
2023-03-14
问题内容

我保证会绑定到我的UI中。当承诺解决并且UI元素呈现后,我可以单击该UI元素。在我处理点击的控制器代码中,我要根据诺言的价值行事。至此,在我的角度代码中,我已经知道诺言已经解决了..但是当我想要获得价值时,它仍然是诺言。

鉴于我知道必须兑现承诺,获得承诺价值的最佳方法是什么?


问题答案:

承诺永远是诺言-
那就应该如此。尽管可以将诺言直接绑定到视图,但我通常不鼓励这种做法,因为它缺乏透明度,并且可能导致视图闪烁。更好的解决方案是在then调用中分配作用域值:

myService.then(function( val ) {
  $scope.val = val;
});

$scope.val准备好,它总是可以直接视为值-因为它是。

就是说,如果您想直接进行承诺分配,则只需将其视为承诺即可;也就是说,您需要致电promise.then(function () { ... });。这似乎带来了不便,但这实际上证明了诺言的强大程度。

如果您需要有关承诺的更多信息,请在最近的Google+环聊中对它们进行了介绍(并提供了代码示例),其中涵盖了AngularJS的Promise的优点,常见用法和最佳实践:AngularJS环聊-
承诺,承诺承诺,承诺
。永无止境的诺言链的想法已得到特别解决,尽管我没有时间代码。

希望这可以帮助!



 类似资料:
  • 问题内容: 我正在从Angular的文档中查看此示例,但是我认为这可能总体上适用于Promise。下面的示例是从文档中逐字复制的,并附有评论: 我不清楚这是如何工作的。如果我可以调用第一个的结果并将它们链接起来(据我所知),那么它就是一个类型为Promise的对象。这不是一个。那么,“它的值将是promiseA的结果增加1”的含义是什么? 我应该以这种方式访问吗?成功回调如何返回承诺并返回“结果+

  • 问题内容: 我编写了以下node.js文件: 如您所见,我为了等待读取csv文件的两种操作而使用。我不明白为什么,但是当我运行代码时,该行未提交。 我的第二个问题是我希望的回调函数接受两个不同的变量,而每个变量都是相关promise的结果。 问题答案: 第一个问题 兑现承诺 更改: 到(添加参数) 第二个问题 在与结果为每个传递给它的承诺数组缓解。 这意味着您可以将结果提取到如下变量中: 您可以使

  • 问题内容: 我试图弄清楚如何通过可能与“ co” 一起获得承诺的价值: 调用的函数不是生成器,而是普通函数。有了上面的,但是我想要解析的值。是否合作或其他一些库有这样做的方法吗? 问题答案: 是的, 公司 可以做到。您必须在调用中包装父函数: 内在将成为解决价值。如果承诺被拒绝,则可以通过基本声明来纠正错误。

  • 问题内容: 以下是用于从共享点检索信息的控制器。我可以看到调试显示条目具有需要在视图中呈现的属性值。我如何从结果承诺中获得那个价值? 我试图将其放入柜台,但没有显示。任何帮助,将不胜感激。 问题答案: 不要使用jQuery ,而要使用$ http服务: 然后从返回的promise中提取数据: $ http服务返回的promise已与AngularJS框架集成。只有在AngularJS执行上下文中应

  • 问题内容: 我对诺言不太熟悉。我想从承诺电话中隐藏承诺的实现。 例: 然后我将在同一文件中而不是在同一函数中解决我的诺言,我称其为诺言。 现在,我知道“ promiseFriend”是不确定的。我如何才能将承诺电话与承诺解决方案区分开? 问题答案: 如果要在函数中定义一个promise并在其他地方使用它,则首先需要从该函数返回promise,而您在代码中没有这样做。然后,您需要实际调用您也没有执行

  • 问题内容: 我的服务是: 我通过以下方式在我的文件中调用它: 但是,它抱怨这不是一个功能。我不退还已解决的承诺吗? 问题答案: 从您的服务方式: 在您的控制器中: