diff options
| author | Brian Ford | 2013-08-21 16:40:20 -0700 | 
|---|---|---|
| committer | Brian Ford | 2013-08-21 16:58:40 -0700 | 
| commit | 7d188d630c63fde05d8765d0ad2d75a5baa8e5d3 (patch) | |
| tree | 8889de135b6f156e21a2d4bdb900d5351fd96bb2 /src | |
| parent | 8ee9a3e902e523577f9ea331af56c7bad6b4eea9 (diff) | |
| download | angular.js-7d188d630c63fde05d8765d0ad2d75a5baa8e5d3.tar.bz2 | |
fix($q): fix forwarding resolution when callbacks aren't functions
Uses the changes from @jamestalmage's fix in #3535. (thanks!)
Closes #3535
Diffstat (limited to 'src')
| -rw-r--r-- | src/ng/q.js | 18 | 
1 files changed, 9 insertions, 9 deletions
| diff --git a/src/ng/q.js b/src/ng/q.js index 307dc1b4..cc39967c 100644 --- a/src/ng/q.js +++ b/src/ng/q.js @@ -241,7 +241,7 @@ function qFactory(nextTick, exceptionHandler) {            var wrappedCallback = function(value) {              try { -              result.resolve((callback || defaultCallback)(value)); +              result.resolve((isFunction(callback) ? callback : defaultCallback)(value));              } catch(e) {                result.reject(e);                exceptionHandler(e); @@ -250,7 +250,7 @@ function qFactory(nextTick, exceptionHandler) {            var wrappedErrback = function(reason) {              try { -              result.resolve((errback || defaultErrback)(reason)); +              result.resolve((isFunction(errback) ? errback : defaultErrback)(reason));              } catch(e) {                result.reject(e);                exceptionHandler(e); @@ -259,7 +259,7 @@ function qFactory(nextTick, exceptionHandler) {            var wrappedProgressback = function(progress) {              try { -              result.notify((progressback || defaultCallback)(progress)); +              result.notify((isFunction(progressback) ? progressback : defaultCallback)(progress));              } catch(e) {                exceptionHandler(e);              } @@ -297,7 +297,7 @@ function qFactory(nextTick, exceptionHandler) {              } catch(e) {                return makePromise(e, false);              } -            if (callbackOutput && callbackOutput.then) { +            if (callbackOutput && isFunction(callbackOutput.then)) {                return callbackOutput.then(function() {                  return makePromise(value, isResolved);                }, function(error) { @@ -322,7 +322,7 @@ function qFactory(nextTick, exceptionHandler) {    var ref = function(value) { -    if (value && value.then) return value; +    if (value && isFunction(value.then)) return value;      return {        then: function(callback) {          var result = defer(); @@ -375,7 +375,7 @@ function qFactory(nextTick, exceptionHandler) {        then: function(callback, errback) {          var result = defer();          nextTick(function() { -          result.resolve((errback || defaultErrback)(reason)); +          result.resolve((isFunction(errback) ? errback : defaultErrback)(reason));          });          return result.promise;        } @@ -401,7 +401,7 @@ function qFactory(nextTick, exceptionHandler) {      var wrappedCallback = function(value) {        try { -        return (callback || defaultCallback)(value); +        return (isFunction(callback) ? callback : defaultCallback)(value);        } catch (e) {          exceptionHandler(e);          return reject(e); @@ -410,7 +410,7 @@ function qFactory(nextTick, exceptionHandler) {      var wrappedErrback = function(reason) {        try { -        return (errback || defaultErrback)(reason); +        return (isFunction(errback) ? errback : defaultErrback)(reason);        } catch (e) {          exceptionHandler(e);          return reject(e); @@ -419,7 +419,7 @@ function qFactory(nextTick, exceptionHandler) {      var wrappedProgressback = function(progress) {        try { -        return (progressback || defaultCallback)(progress); +        return (isFunction(progressback) ? progressback : defaultCallback)(progress);        } catch (e) {          exceptionHandler(e);        } | 
