Estus Flask
Estus Flask

Reputation: 222474

Catch an error and reject the promise

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

Answers (1)

guest271314
guest271314

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

Related Questions