AJAX はデフォルトで ASYNCHRONOUSLY を実行します
AJAX 関数は非同期で実行されるため、JavaScript コードのフローを中断しません。これが意味することは、リクエストを送信し、レスポンスを待って、success
関数に入力したものを処理するということです。その間ずっと、残りのコードは実行され続けます。
あなたの最善の選択肢は、おそらく次のように、AJAX リターンで行っていることをすべてfor
ループから取り出し、それをsuccess
AJAX クエリのパラメーターに渡すことです。
$.getJSON("getAnswers?question_id="+questionId,function(data){
... handle data, parse it, write to page etc ...
});
別の呼び出し構文を使用して、AJAX を同期的に実行することもできますが、ここからでも、それから抜け出すのに苦労するでしょうreturn
。
$.ajax({
dataType: "json",
url: url,
data: data,
success: success,
async: false
});
あなたのコードとリターンで何をしているのかをもっと知らなければ、これにどのようにアプローチするべきかははっきりとは言えませんが、あなたがやっている方法でAJAXリクエストを実行する100回のうち99回はソフトウェアが貧弱です.エンジニアリング。