$q
Promise チェーンの解決/拒否時に、暗黙のダイジェスト/適用が含まれていますか?
コードの一部$q
を使用するために移行しましたq
が、ダイジェストが欠落しているように見え、動作が異なります。これはなぜでしょうか?
$q
Promise チェーンの解決/拒否時に、暗黙のダイジェスト/適用が含まれていますか?
コードの一部$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});
},