$q
是否包含 promise 链解析/拒绝时的隐式摘要/应用?
我已将一段代码从 $q
迁移到使用 q
,现在似乎缺少摘要,导致不同的行为。为什么会这样?
最佳答案
甚至更多 - 只要 QProvider
定义如下,它就包括显式:
function $QProvider() {
this.$get = ['$rootScope', '$exceptionHandler', function($rootScope, $exceptionHandler) {
return qFactory(function(callback) {
$rootScope.$evalAsync(callback); // ! $evalAsync()
}, $exceptionHandler);
}];
}
从此函数声明中可以找到方法 .$evalAsync()
的简短方法,对于 versin 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});
},
关于javascript - $q 是否包含 promise 链解析/拒绝时的隐式摘要/应用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33496008/