aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/ng/q.js2
-rw-r--r--test/ng/qSpec.js8
2 files changed, 9 insertions, 1 deletions
diff --git a/src/ng/q.js b/src/ng/q.js
index 074acd1d..b8e1166e 100644
--- a/src/ng/q.js
+++ b/src/ng/q.js
@@ -274,7 +274,7 @@ function qFactory(nextTick, exceptionHandler) {
then: function(callback, errback) {
var result = defer();
nextTick(function() {
- result.resolve(errback(reason));
+ result.resolve((errback || defaultErrback)(reason));
});
return result.promise;
}
diff --git a/test/ng/qSpec.js b/test/ng/qSpec.js
index a230d1de..941b4f2e 100644
--- a/test/ng/qSpec.js
+++ b/test/ng/qSpec.js
@@ -480,6 +480,14 @@ describe('q', function() {
syncResolve(deferred, rejectedPromise);
expect(log).toEqual(['error(Error: not gonna happen)']);
});
+
+
+ it('should return a promise that forwards callbacks if the callbacks are missing', function() {
+ var rejectedPromise = q.reject('rejected');
+ promise.then(success(), error());
+ syncResolve(deferred, rejectedPromise.then());
+ expect(log).toEqual(['error(rejected)']);
+ });
});