0

私は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関数を何度も実行するつもりです。そのため、このように設定したいと思います

助けてくれてありがとう!

4

1 に答える 1

0

.each ループは順番に実行する必要があり、終了するまで何も実行しないでください。

このコードを実行するのはどうですか:

sim(prob);

function sim(prob){
  //alert ("test");
  alert (prob[value]);
  new_sim(prob[value]); 
}

get_probs の成功のコールバック内では、同期 ajax 呼び出しが答えになることはありません。

于 2012-04-11T01:30:37.720 に答える