【发布时间】:2016-06-06 10:50:16
【问题描述】:
我遇到了一个问题,即我的方法之一在我的 getJSON 调用完成执行之前正在执行。此方法在执行自身之前需要调用中的数据。
我查看了一些东西,例如“延迟调用或 .done(),但我的主要问题是我的嵌套 getJSON 调用是可变的。这意味着从我的第一个文件中我得到一个数字,并使用该数字创建一个循环,然后根据该数字执行多个 getJSON 调用。我无法附加 .done(),因为我必须多次执行此操作,并且由于相同的原因,延迟调用不会起作用。出于某种原因,第一个 .done()不会等到内部 getJSON 调用完成后再执行……这应该发生吗?
$.getJSON(file, function(d)
{
for(var i = 0; i < d.name.length; i++)
{
files[i] = d.name[i];
fileName = "/"+files[i];
$.getJSON(fileName+'.PNG', function(data)
{
json[i] = data;
});
}
})
.done(function()
{
makeUL(plan); //doesn't work but needs the data from json[i] in order to continue.
})
.fail(function( jqxhr, textStatus, error )
{
var err = textStatus + ', ' + error;
console.log( "Request Failed: " + err);
alert("failed");
});
有人知道我该怎么做吗?
谢谢大家:)
【问题讨论】:
标签: javascript jquery html ajax json