Javascript $q是否包括承诺链的隐含摘要/解决/拒绝时应用?
Javascript $q是否包括承诺链的隐含摘要/解决/拒绝时应用?,javascript,angularjs,angular-promise,angularjs-digest,Javascript,Angularjs,Angular Promise,Angularjs Digest,$q是否包含对承诺链的解决/拒绝的隐含摘要/应用 我已将一段代码从$q迁移到使用q,现在似乎缺少一个摘要,导致了不同的行为。为什么会这样?甚至更多-只要QProvider的定义如下,它就包括显式的: function $QProvider() { this.$get = ['$rootScope', '$exceptionHandler', function($rootScope, $exceptionHandler) { return qFactory(function(callb
$q
是否包含对承诺链的解决/拒绝的隐含摘要/应用
我已将一段代码从
$q
迁移到使用q
,现在似乎缺少一个摘要,导致了不同的行为。为什么会这样?甚至更多-只要QProvider
的定义如下,它就包括显式的:
function $QProvider() {
this.$get = ['$rootScope', '$exceptionHandler', function($rootScope, $exceptionHandler) {
return qFactory(function(callback) {
$rootScope.$evalAsync(callback); // ! $evalAsync()
}, $exceptionHandler);
}];
}
从这个函数声明中,有一个简短的方法$evalAsync()
版本1.2.28的方法
$evalAsync: function(expr) {
// if we are outside of an $digest loop and this is the first time we are scheduling async
// task also schedule async auto-flush
if (!$rootScope.$$phase && !$rootScope.$$asyncQueue.length) {
$browser.defer(function() {
if ($rootScope.$$asyncQueue.length) {
$rootScope.$digest(); // ! $digest()
}
});
}
this.$$asyncQueue.push({scope: this, expression: expr});
},
可能重复的