From 7d188d630c63fde05d8765d0ad2d75a5baa8e5d3 Mon Sep 17 00:00:00 2001 From: Brian Ford Date: Wed, 21 Aug 2013 16:40:20 -0700 Subject: fix($q): fix forwarding resolution when callbacks aren't functions Uses the changes from @jamestalmage's fix in #3535. (thanks!) Closes #3535 --- src/ng/q.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'src/ng/q.js') 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); } -- cgit v1.2.3