【发布时间】:2016-12-26 18:59:57
【问题描述】:
使用 angular $q,我在问自己是否应该使用 $$state 私有属性来检查承诺的状态(检查它是挂起的还是完成的)。
假设这样的情况:
var promise = undefined;
$scope.click = function(){
if(promise != null && promise.$$state.status === 0)
return;
promise = doAsyncAnimation().then(function(){
console.log('hey, i'm done!');
});
}
这被认为是一种不好的做法?它会完全满足我的需要,而且我不喜欢使用单独的布尔变量来完成工作。 有多少资格?
【问题讨论】:
-
问题不在于如何去做,而在于它是否被认为是一种好的做法。
-
链接实际上是关于它在灰色区域。一些 Promise 实现通过他们的 API 提供 Promise 检查(包括 Q,$q 的灵感来自)。有些没有。有些人没有,但它仍然可以完成。 $q 属于后者。在某些情况下,promise 检查是可以的,但问题不是其中之一。
标签: javascript angularjs asynchronous q