diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/AngularPublic.js | 5 | ||||
| -rw-r--r-- | src/ng/asyncCallback.js | 11 | ||||
| -rw-r--r-- | src/ngMock/angular-mocks.js | 15 | 
3 files changed, 29 insertions, 2 deletions
| diff --git a/src/AngularPublic.js b/src/AngularPublic.js index 3870c519..0c02adec 100644 --- a/src/AngularPublic.js +++ b/src/AngularPublic.js @@ -73,7 +73,7 @@      $TemplateCacheProvider,      $TimeoutProvider,      $$RAFProvider, -    $AsyncCallbackProvider, +    $$AsyncCallbackProvider,      $WindowProvider  */ @@ -214,7 +214,8 @@ function publishExternalAPI(angular){          $templateCache: $TemplateCacheProvider,          $timeout: $TimeoutProvider,          $window: $WindowProvider, -        $$rAF: $$RAFProvider +        $$rAF: $$RAFProvider, +        $$asyncCallback : $$AsyncCallbackProvider        });      }    ]); diff --git a/src/ng/asyncCallback.js b/src/ng/asyncCallback.js new file mode 100644 index 00000000..8bede73a --- /dev/null +++ b/src/ng/asyncCallback.js @@ -0,0 +1,11 @@ +'use strict'; + +function $$AsyncCallbackProvider(){ +  this.$get = ['$$rAF', '$timeout', function($$rAF, $timeout) { +    return $$rAF.supported +      ? function(fn) { return $$rAF(fn); } +      : function(fn) { +        return $timeout(fn, 0, false); +      }; +  }]; +} diff --git a/src/ngMock/angular-mocks.js b/src/ngMock/angular-mocks.js index efde0f3a..bcd6cc1f 100644 --- a/src/ngMock/angular-mocks.js +++ b/src/ngMock/angular-mocks.js @@ -1684,6 +1684,20 @@ angular.mock.$RAFDecorator = function($delegate) {    return rafFn;  }; +angular.mock.$AsyncCallbackDecorator = function($delegate) { +  var callbacks = []; +  var addFn = function(fn) { +    callbacks.push(fn); +  }; +  addFn.flush = function() { +    angular.forEach(callbacks, function(fn) { +      fn(); +    }); +    callbacks = []; +  }; +  return addFn; +}; +  /**   *   */ @@ -1718,6 +1732,7 @@ angular.module('ngMock', ['ng']).provider({  }).config(['$provide', function($provide) {    $provide.decorator('$timeout', angular.mock.$TimeoutDecorator);    $provide.decorator('$$rAF', angular.mock.$RAFDecorator); +  $provide.decorator('$$asyncCallback', angular.mock.$AsyncCallbackDecorator);  }]);  /** | 
