diff options
| -rw-r--r-- | CHANGELOG.md | 2 | ||||
| -rw-r--r-- | src/Browser.js | 2 | ||||
| -rw-r--r-- | src/service/defer.js | 5 | ||||
| -rw-r--r-- | test/service/deferSpec.js | 7 |
4 files changed, 13 insertions, 3 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 2548c831..17f360b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ - rewrite of JQuery lite implementation for better supports operations on multiple nodes when matched by a selector. - Infer DI dependencies from function signature. http://docs.angularjs.org/#!guide.di +- Added delay parameter to the $defer service + ### Breaking changes - Removed the $init() method after the compilation. The old way of compiling the DOM element was diff --git a/src/Browser.js b/src/Browser.js index 7f8ee729..af87c47d 100644 --- a/src/Browser.js +++ b/src/Browser.js @@ -324,7 +324,7 @@ function Browser(window, document, body, XHR, $log) { * @name angular.service.$browser#defer * @methodOf angular.service.$browser * @param {function()} fn A function, who's execution should be defered. - * @param {int=} [delay=0] of milliseconds to defer the function execution. + * @param {number=} [delay=0] of milliseconds to defer the function execution. * * @description * Executes a fn asynchroniously via `setTimeout(fn, delay)`. diff --git a/src/service/defer.js b/src/service/defer.js index 2cdecb5a..39f739d2 100644 --- a/src/service/defer.js +++ b/src/service/defer.js @@ -14,9 +14,10 @@ * In tests you can use `$browser.defer.flush()` to flush the queue of deferred functions. * * @param {function()} fn A function, who's execution should be deferred. + * @param {number=} [delay=0] of milliseconds to defer the function execution. */ angularServiceInject('$defer', function($browser, $exceptionHandler, $updateView) { - return function(fn) { + return function(fn, delay) { $browser.defer(function() { try { fn(); @@ -25,6 +26,6 @@ angularServiceInject('$defer', function($browser, $exceptionHandler, $updateView } finally { $updateView(); } - }); + }, delay); }; }, ['$browser', '$exceptionHandler', '$updateView']); diff --git a/test/service/deferSpec.js b/test/service/deferSpec.js index 932c3661..8ac1b803 100644 --- a/test/service/deferSpec.js +++ b/test/service/deferSpec.js @@ -66,4 +66,11 @@ describe('$defer', function() { $browser.defer.flush(); expect(eval).wasCalled(); }); + + it('should allow you to specify the delay time', function(){ + var defer = this.spyOn($browser, 'defer'); + $defer(noop, 123); + expect(defer.callCount).toEqual(1); + expect(defer.mostRecentCall.args[1]).toEqual(123); + }); }); |
