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」を介して実行され、他のコールバックが処理する前に呼び出し後の処理が必要になるため、なぜそれが発生しているのか、またはそれを修正する方法がわかりません。

TIAロブ

4

1 に答える 1

-1

同期させるには async を使用します

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