执行时存在 JSON 问题


JSON issue with execution

我确定这可能是我愚蠢,但我想确认这个问题。我正在构建一个 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;

碰巧的是,几个小时前我回答了一个类似的问题 javascript 代码执行和 ajax 异步

从本质上讲,发生的事情是

$.getJSON('http://.../getimages.php', function(data) {
// process data
});
// this runs *before* "process data"
return sampleItems;

这意味着,在getJSON回调函数填充之前,您返回sampleItems

要解决此问题,您必须在回调函数中进行处理。