使用then链接ajax调用,处理预期的失败

时间:2014-04-15 13:24:47

标签: jquery jquery-deferred

我接到一个电话:

$.ajax({url:"url", ....}).then(function(response) {
  if (response.sucess) {
    return $.ajax({.....});
  }
  else {
    //what do I return here so the next then doesn't fire but no error is raised?
  }
}).then(function(response2) {
   //....Do more stuff
});

因此第一个ajax调用返回成功标志。如果这成功,那么我希望它继续下去。如果我不想阻止下一个then被解雇。我不确定在success == false

之后我应该从第一次返回什么

我觉得我应该返回一个$.Deferred,因为这是then所期望的但是我不确定如何做到这一点,因为我没有解雇另一个{{1}行动。

1 个答案:

答案 0 :(得分:0)

想出来。需要返回.reject();

$.ajax({url:"url", ....}).then(function(response) {
  if (response.sucess) {
    return $.ajax({.....});
  }
  else {
    return $.Deferred().reject();
  }
}).then(function(response2) {
   //....Do more stuff
});