The following code is returned:
output.isPending?: true output.isRejected?: false output.isFulfilled?: false
Why? I expected output.isRejected be true .
<html> <head> <script src="http://cdnjs.cloudflare.com/ajax/libs/q.js/0.9.7/q.js"></script> <script src="http://jasmine.imtqy.com/2.3/lib/jasmine.js"></script> </head> <body> </body> <script> var output, bar; bar = { doSomethingAsync: function() { var d = Q.defer(); d.resolve('result'); return d.promise; } }; function Foo(bar) { this._bar = bar; this.go = function() { var deferred = Q.defer(); this._bar.doSomethingAsync() .then(onSuccess.bind(this, deferred)); return deferred.promise; } }; function onSuccess(deferred, result) { deferred.reject(); } output = new Foo(bar).go() .finally(function() { console.log('output.isPending?:', output.isPending()); console.log('output.isRejected?:', output.isRejected()); console.log('output.isFulfilled?:', output.isFulfilled()); }); </script> </html>
source share