我确定这可能是我愚蠢但我想确认这个问题。我正在构建一个Windows 8应用程序并从mysql服务器加载数据,我似乎无法解决这个问题。从一点点阅读我猜测问题是代码正在执行之前json请求是正确的,有没有办法解决它。返回是因为它在函数内部,它返回数据然后显示它。 “SampleItems [0]”显示完美,但json内部的东西不会,但控制台日志显示它从服务器获取数据。在此先感谢您的帮助!
var sampleItems = [];
sampleItems[0] = { group: sampleGroups[count], title: "New Image", subtitle: "", description: "", content: "", backgroundImage: "/images/add.png" };
//this code calls to our cloud based service which gets the data which is needed and returns it in a JSON object back for this to handle
$.getJSON('http://pumpstationstudios.com/tumapics/services/getimages.php', function (data) {
var service_url = 'http://pumpstationstudios.com/tumapics/';
var count = 1;
images = data.items;
$.each(images, function (index, image) {
image.image = service_url + image.image;
sampleItems[count] = { group: sampleGroups[count], title: "Hello", subtitle: "", description: "", content: "", backgroundImage: image.image };
count++;
});
});
return sampleItems;
答案 0 :(得分:1)
碰巧,我answered在几个小时之前发现了一个类似的问题javascript code execution and ajax async
基本上,会发生什么
$.getJSON('http://.../getimages.php', function(data) {
// process data
});
// this runs *before* "process data"
return sampleItems;
这意味着,在sampleItems
回调函数填充之前,您将返回getJSON
。
要解决此问题,您必须在回调函数中进行处理。