From 4c4537e65e6cf911c9659b562d89e3330ce3ffae Mon Sep 17 00:00:00 2001 From: Matias Niemelä Date: Mon, 24 Feb 2014 19:43:57 -0500 Subject: perf($animate): use rAF instead of timeouts to issue animation callbacks --- src/ng/animate.js | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'src/ng/animate.js') diff --git a/src/ng/animate.js b/src/ng/animate.js index 130e61e7..d90f086b 100644 --- a/src/ng/animate.js +++ b/src/ng/animate.js @@ -81,7 +81,11 @@ var $AnimateProvider = ['$provide', function($provide) { return this.$$classNameFilter; }; - this.$get = ['$timeout', function($timeout) { + this.$get = ['$timeout', '$$asyncCallback', function($timeout, $$asyncCallback) { + + function async(fn) { + fn && $$asyncCallback(fn); + } /** * @@ -126,7 +130,7 @@ var $AnimateProvider = ['$provide', function($provide) { } parent.append(element); } - done && $timeout(done, 0, false); + async(done); }, /** @@ -142,7 +146,7 @@ var $AnimateProvider = ['$provide', function($provide) { */ leave : function(element, done) { element.remove(); - done && $timeout(done, 0, false); + async(done); }, /** @@ -189,7 +193,7 @@ var $AnimateProvider = ['$provide', function($provide) { forEach(element, function (element) { jqLiteAddClass(element, className); }); - done && $timeout(done, 0, false); + async(done); }, /** @@ -212,7 +216,7 @@ var $AnimateProvider = ['$provide', function($provide) { forEach(element, function (element) { jqLiteRemoveClass(element, className); }); - done && $timeout(done, 0, false); + async(done); }, /** @@ -234,7 +238,7 @@ var $AnimateProvider = ['$provide', function($provide) { jqLiteAddClass(element, add); jqLiteRemoveClass(element, remove); }); - done && $timeout(done, 0, false); + async(done); }, enabled : noop -- cgit v1.2.3