jqueryの各関数で作業しています。終了する前に各ループの結果を必要とする関数に移動しているようですコードです。続行する前にそれぞれの処理が完了するのを待つ(jquery)
$.each(array, function(index, value) {
prob[value] = get_probs(value);
});
sim(prob);
function sim(prob){
//alert ("test");
alert (prob[value]);
new_sim(prob[value]);
}
アラート( "テスト")のコメントを外すと、ピースは明らかにアラートを表示し、2番目のアラートに適切な番号を表示しますが、そのまま残すと、定義されていない状態に戻ります。これは、各ループを終了する
とにかく、私は各ループが終了するまで実行するためにsim関数を待つことができますか?
注:これより多くのコードがありますが、私は単純化しようとしました...何かが不明な場合はお知らせください。私は結局、このような設定をしたい理由で、sim関数を複数回実行しようとしています。
ありがとうございました!
私は 'get_probs'とか、他のコードがAJAXリクエストをしているとか、他の非同期アクションをしていると思います。 –
そうです。私はちょうどそれを同期的に実行するように切り替えました(async:false)、それは動作しているように見えます。これを行う他の方法はありますか? –
AJAXの応答に依存するコードはすべて、 'success:'コールバックから実行する必要があります。 1つのオプションは 'get_probs' *(AJAXがあると仮定)*に引数として関数を渡し*、コールバック内でその関数を呼び出して応答を渡すことです。それ以外の場合は、関数を渡す代わりに、コードをコールバックにハードコードするだけで済みます。 –