$ .ajax getjson数组空外函数

时间:2014-09-30 12:43:44

标签: jquery arrays ajax

我试图用getjson / ajax命令中的数据填充我的数组但由于某种原因,该数组在函数外是空的。

这是我的代码:

$.ajax({
    url: instagramUrl,
    dataType: 'json',
    async: false,
    data: access_parameters,
    success: function(data) {
        if(data.data.length > 0) {
            for (var key in data.data ){
                photo_container.push(data.data[key]);
                console.log(photo_container); <--- filled array
            }
        }
    }
});
console.log(photo_container); <--- empty array

我发现async:false应该解决这个问题,但是我不能让它工作我之前已经尝试了getjson,这也没有用。

$.ajaxSetup({
    async: false
});

也不起作用:(

如果有人知道答案,请告诉我!谢谢!

1 个答案:

答案 0 :(得分:2)

在使用数据之前,您必须等待ajax调用完成:

function retrieveImages() {
    return $.ajax({
        url: instagramUrl,
        dataType: 'json',    
        data: access_parameters
    });
}

$(document).ready(function () {
    var photo_container = [];
    retrieveImages().done(function(data) {
        if(data.data.length > 0) {
            for (var key in data.data ){
                photo_container.push(data.data[key]);
                console.log(photo_container); <--- filled array
            }
        }
        // you can only use the data inside the done() handler,
        // when the call has completed and the data is returned
        console.log(photo_container);
    });        
});