Ajax回调以意想不到的顺序触发

时间:2012-09-26 03:12:07

标签: jquery

psuedo代码:      when(x,y).then(z);

其中y是对调用ajax调用的函数的调用,如:

function y(......){
  var p = $.ajax(...........);
  p.done(callMeFirst);
  return p;
}

现在根据我的理解,假设x已经解决,那么在成功的ajax调用'callMeFirst'之前应先触发'z'

但是会发生'z'首先触发然后'callMeFIrst'

我不知道为什么会发生这种情况或如何修复它,因为我们所有的ajax调用都运行'y',并且在任何其他回调处理它之前需要它的后调用处理。

TIA 罗布

1 个答案:

答案 0 :(得分:-1)

使用async使其同步

return $.ajax({
       url  : url,
       type : "POST",
       cache: false,
       async:   false
}).responseText;