ループ内で複数のJSON呼び出しを行う必要があるプロジェクトに取り組んでいます。そのループを終了したらすぐに、行ったすべての呼び出しの結果を処理する必要があります。自分の操作順序がうまくいくようにこれらの呼び出しを行う方法を理解するのに苦労しています。結果を処理するための私のコードは、サービスへの呼び出しが完了する前に常に実行されます。デモンストレーション用にjsfiddleを作成し、ここにコードを含めています。
var sourceData = { "fooIndex": "foo",
"barIndex": "bar"
}
var destinationData = {};
for (var sourceIndex in sourceData) {
$.getJSON('http://echo.jsontest.com/' + sourceIndex + '/' + sourceData[sourceIndex] + '?callback=?', null, function (result) {
for (var resultIndex in result) {
alert("Adding " + resultIndex + " : " + result[resultIndex]);
destinationData[resultIndex] = result[resultIndex];
}
});
}
if (Object.keys(destinationData).length == 0) {
alert("Destination not yet populated");
}
else {
alert("Eureka! You did it!");
}