【发布时间】:2015-11-27 14:04:31
【问题描述】:
我有一个关于在 AngularJS 中将回调函数附加到 Promise 的问题。
假设我有一个带有返回承诺的函数的服务。我调用这个函数并在本地存储承诺。然后我在 promise 上定义了一个回调函数。
var promise = TestService.get();
console.log('We have a promise!');
promise.then(function (result){
console.log('Here is the result:'+result);
});
在这种情况下,我们面临着潜在的危险情况。如果在我们到达 promise.then(... 之前完成了 promise,则结果不会输出到控制台(直到下一个摘要循环)。
或者,我可以这样写上面的代码:
TestService.get().then(function (result){
console.log('Here is the result:'+result);
});
我的问题:
第二个示例中的风险是否得到缓解?如果没有,我如何确保在我附加回调之前承诺没有解决? 比是/否更详细的答案将不胜感激:)
【问题讨论】:
-
您说的是“消化周期”。您是在专门询问 AngularJS 的承诺吗?你的问题到底是什么?
-
您的两个 sn-ps 之间的行为没有区别。回调将始终被执行,并且始终是异步的。
-
没错,看问题的第一句话。
标签: javascript angularjs asynchronous angular-promise