Skip to content

Commit edbe9d8

Browse files
committed
Added delay parameter to the $defer service
1 parent 9e67da4 commit edbe9d8

4 files changed

Lines changed: 13 additions & 3 deletions

File tree

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
- rewrite of JQuery lite implementation for better supports operations on multiple nodes when
66
matched by a selector.
77
- Infer DI dependencies from function signature. http://docs.angularjs.org/#!guide.di
8+
- Added delay parameter to the $defer service
9+
810

911
### Breaking changes
1012
- Removed the $init() method after the compilation. The old way of compiling the DOM element was

src/Browser.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -324,7 +324,7 @@ function Browser(window, document, body, XHR, $log) {
324324
* @name angular.service.$browser#defer
325325
* @methodOf angular.service.$browser
326326
* @param {function()} fn A function, who's execution should be defered.
327-
* @param {int=} [delay=0] of milliseconds to defer the function execution.
327+
* @param {number=} [delay=0] of milliseconds to defer the function execution.
328328
*
329329
* @description
330330
* Executes a fn asynchroniously via `setTimeout(fn, delay)`.

src/service/defer.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,10 @@
1414
* In tests you can use `$browser.defer.flush()` to flush the queue of deferred functions.
1515
*
1616
* @param {function()} fn A function, who's execution should be deferred.
17+
* @param {number=} [delay=0] of milliseconds to defer the function execution.
1718
*/
1819
angularServiceInject('$defer', function($browser, $exceptionHandler, $updateView) {
19-
return function(fn) {
20+
return function(fn, delay) {
2021
$browser.defer(function() {
2122
try {
2223
fn();
@@ -25,6 +26,6 @@ angularServiceInject('$defer', function($browser, $exceptionHandler, $updateView
2526
} finally {
2627
$updateView();
2728
}
28-
});
29+
}, delay);
2930
};
3031
}, ['$browser', '$exceptionHandler', '$updateView']);

test/service/deferSpec.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,4 +66,11 @@ describe('$defer', function() {
6666
$browser.defer.flush();
6767
expect(eval).wasCalled();
6868
});
69+
70+
it('should allow you to specify the delay time', function(){
71+
var defer = this.spyOn($browser, 'defer');
72+
$defer(noop, 123);
73+
expect(defer.callCount).toEqual(1);
74+
expect(defer.mostRecentCall.args[1]).toEqual(123);
75+
});
6976
});

0 commit comments

Comments
 (0)