2

伪代码: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”运行,并且在任何其他回调处理它之前需要它的调用后处理。

蒂亚罗伯

4

1 回答 1

-1

使用 async 使其同步

return $.ajax({
       url  : url,
       type : "POST",
       cache: false,
       async:   false
}).responseText;
于 2012-09-26T11:28:18.767 回答