gpt4 book ai didi

angularjs - 如何获得已经解决的 promise 值?

转载 作者:行者123 更新时间:2023-12-02 21:58:51 24 4
gpt4 key购买 nike

我有一个在我的用户界面中必须遵守的 promise 。当 promise 解决并且 UI 元素呈现时,我可以单击该 UI 元素。在我处理点击的 Controller 代码中,我想对 promise 的值采取行动。此时,在我的 Angular 代码中,我已经知道 promise 已解决..但是当我想获取该值时,它仍然是一个 promise 。

既然我知道它一定已经解决了,那么获得 promise 值(value)的最佳方法是什么?

最佳答案

promise 始终是 promise - 也应该如此。虽然可以将 promise 直接绑定(bind)到 View ,但我通常不鼓励这种做法,因为它缺乏透明度并且可能导致 View 闪烁。更好的解决方案是在 then 中分配范围值。调用:

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

何时 $scope.val准备好了,它总是可以直接被视为一个值 - 因为它已经准备好了。

也就是说,如果你想直接进行 Promise 赋值,你只需要把它当作一个 Promise 来对待;即您需要调用promise.then(function () { ... }); 。这看起来很不便,但这实际上证明了 Promise 有多么强大。

如果您想了解有关 Promise 的更多信息,我在最近的 Google+ Hangout 中对它们进行了武断的讨论(并提供了代码示例),其中我介绍了 AngularJS 中 Promise 的优点、常见用途和最佳实践:AngularJS Hangout -- Promises, PromisesPromises, Promises 。尽管我脑子里没有时间码,但永无休止的 promise 链的想法得到了专门解决。

希望这有帮助!

关于angularjs - 如何获得已经解决的 promise 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16312188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com