diff options
| -rw-r--r-- | src/ng/q.js | 8 | ||||
| -rw-r--r-- | test/ng/qSpec.js | 7 | 
2 files changed, 14 insertions, 1 deletions
| 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(); diff --git a/test/ng/qSpec.js b/test/ng/qSpec.js index 73579137..b12a4a8f 100644 --- a/test/ng/qSpec.js +++ b/test/ng/qSpec.js @@ -959,6 +959,13 @@ describe('q', function() {        mockNextTick.flush();        expect(log).toEqual(['errorBroken(rejected)->throw(catch me!)', 'errorAffected(catch me!)->reject(catch me!)']);      }); + + +    it('should have functions `finally` and `catch`', function() { +      var rejectedPromise = q.reject('rejected'); +      expect(rejectedPromise['finally']).not.toBeUndefined(); +      expect(rejectedPromise['catch']).not.toBeUndefined(); +    });    }); | 
