From 074b0675a1f97dce07f520f1ae6198ed3c604000 Mon Sep 17 00:00:00 2001 From: Lucas Galfasó Date: Fri, 31 Jan 2014 15:22:36 -0300 Subject: fix($q): make $q.reject support `finally` and `catch` Add support for the functions `finally` and `catch` to the promise returned by `$q.reject` Closes #6048 Closes #6076 --- src/ng/q.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'src/ng/q.js') diff --git a/src/ng/q.js b/src/ng/q.js index 5c36dc07..0a98c335 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -223,7 +223,7 @@ function qFactory(nextTick, exceptionHandler) { reject: function(reason) { - deferred.resolve(reject(reason)); + deferred.resolve(createInternalRejectedPromise(reason)); }, @@ -380,6 +380,12 @@ function qFactory(nextTick, exceptionHandler) { * @returns {Promise} Returns a promise that was already resolved as rejected with the `reason`. */ var reject = function(reason) { + var result = defer(); + result.reject(reason); + return result.promise; + }; + + var createInternalRejectedPromise = function(reason) { return { then: function(callback, errback) { var result = defer(); -- cgit v1.2.3