jquery全局数组填充函数,但在函数外部仍然为空

jquery全局数组填充函数,但在函数外部仍然为空,jquery,Jquery,我有一个全局变量images,其中填充了来自xml文件的路径名。解析xml文件的函数可以工作,并填充数组。但是当函数完成时,我的全局变量仍然是空的。有人有解决办法吗 $(document).ready(function() { var images = []; var descriptions = []; getImages(); function getImages() { $(document).ready(function () { $.ajax({

我有一个全局变量images,其中填充了来自xml文件的路径名。解析xml文件的函数可以工作,并填充数组。但是当函数完成时,我的全局变量仍然是空的。有人有解决办法吗

$(document).ready(function() {
var images = [];
var descriptions = [];
getImages();


function getImages() {
    $(document).ready(function () {
        $.ajax({
            type: "GET",
            url: "xml/page_pictures.xml",
            dataType: "xml",
            success: xmlParser
        });
    });

    function xmlParser(xml) {
        $(xml).find("pages").children().each(function() {               
                $(this).find("images").children().each(function() { //find all the image nodes in this node
                    images.push($(this).attr("path").toString());
                    descriptions.push($(this).find("image-label").text());              
                });
            });
        }
}


});
调试时,我注意到在.each的末尾,我的变量图像填充了129个项目,但是当函数完全完成并且我在getImages之后检查图像时,我的变量图像再次为空


提前感谢。

$。ajax是异步的,这意味着当getImages结束时,xmlParser还没有运行。的可能副本要进一步查看注释,任何对图像的即时访问都需要在回调xmlParser内完成。我不建议这样做,但如果确实需要同步行为,可以在$.ajax回调中提供async:false。