次の問題があります。
私はループを持っています:
// Code A
. . .
for (var key in dict){
// Code B
. . .
var list = this.initializeList();
var selfRef = this;
jQuery.ajax({
dataType: 'json',
url: '/someUrl',
data: {'sent_data': sendData},
success: function (recievedData){
this.function(list);
}
});
// Code C
. . .
}
// Code D
. . .
ここで、コードの実行順序が次の場合に理想的な方法は次のとおりです。
- コード A
- for ループ:
- コード B
- AJAX
- コード C
- コード D
しかし、問題はループのステップ 2 にあります。最初にコード Bが実行され、次に AJAX 呼び出しが実行され、次に再びコード Cの代わりに AJAX コードが実行されます。次の反復では、コード Bの代わりに AJAX コードが再度実行されます。実行の順序が上記のリストに示されているとおりであることは、私にとって非常に重要です。ご覧のとおり、変数リストはループごとに再初期化する必要がありますが、代わりに、最初の初期化のみで複数の AJAX 呼び出しを行っています。
これを修正するにはどうすればよいですか?