我有一个承诺,我在我的UI中有约束力。当promise解析和UI元素呈现时,我可以点击该UI元素。在我的控制器代码中,我处理点击,我想对承诺的价值采取行动。在这一点上,我已经知道这个承诺已经解决了,但是当我想要获得价值时,它仍然是一个承诺。
什么是获得承诺价值的最佳方式…鉴于我知道它必须解决?
承诺永远是承诺 – 这就是他们应该如何。虽然可以将承诺直接约束到视图,但我通常不鼓励这种做法,因为它缺乏透明度,可能导致闪烁。更好的解决方案是在随后的调用中分配范围值:
myService.then(function( val ) { $scope.val = val; });
当$ scope.val准备好时,它可以直接被视为一个值 – 因为它是。
也就是说,如果你想直接做承诺任务,你只需要像承诺一样对待它;那就是你需要调用promise.then(function(){…});.这似乎是一个不便之处,但实际上证明了有力的承诺。
如果您想要一些有关承诺的更多信息,请联系最近的Google环聊(并提供代码示例),其中涵盖了AngularJS:AngularJS Hangout — Promises,Promises
Promises,Promises中的优点,常见用途和最佳做法。永不停息的想法承诺链是专门处理的,虽然我没有时间码在我的头顶。
希望这可以帮助!