Reputation: 222474
I need to catch an error and reject the promise chain below.
How can this
var deferred = new $.Deferred();
deferred.resolve();
deferred.then(function () {
try {
throw new Error();
} catch (err) {
return $.Deferred().reject();
}
}).then(function () {
console.log('success', arguments);
}, function () {
console.log('fail', arguments);
});
be made rejected in jQuery? I would expect fail
, but there is success
.
Upvotes: 0
Views: 708
Reputation: 1
Try using jQuery version 1.8 , see deferred.then() , jQuery 1.8 Released , MAKE DEFERRED.THEN == DEFERRED.PIPE LIKE PROMISE/A
var deferred = new $.Deferred();
deferred.resolve();
deferred.then(function () {
try {
throw new Error();
} catch (err) {
return $.Deferred().reject();
}
}).then(function () {
console.log('success', arguments);
}, function () {
console.log('fail', arguments);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min.js">
</script>
Upvotes: 1