aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md2
-rw-r--r--src/Browser.js2
-rw-r--r--src/service/defer.js5
-rw-r--r--test/service/deferSpec.js7
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);
+ });
});