我正在做一个项目,我需要在一个循环中进行多个 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!");
}