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});
},
可能重复的