存储$ .getJSON()响应本地var

时间:2013-09-24 18:18:52

标签: javascript jquery

我需要多次使用一个函数,并希望避免一遍又一遍地编写相同的方法。我想使用$ .getJSON()响应并将其存储在将要返回的var中。这样我就可以调用该方法。

function startFilter(){
            var grid = [];
            $.getJSON('data/gridData1.json',function(json){
                grid = json;
                console.log(grid);
            });
            console.log(grid);
            return grid;
        }

grid var在.getJSON中设置,但不在.getJSON之外。任何想法为什么,如果需要更多信息让我知道?

2 个答案:

答案 0 :(得分:3)

Ajax调用是异步的。以下是事物在当时的定位方式。

function startFilter(){
    var grid = []; // (1)
    $.getJSON('data/gridData1.json', function(json){  // (2)
        grid = json;  // (5)
        console.log(grid); // (6)
    });
    console.log(grid);  // (3)
    return grid;  // (4)
}

您应该使用回调来构建逻辑:

function startFilter(callback) {
    $.getJSON('data/gridData1.json', callback);
}

var grid = [];
startFilter(function(json) {
    grid = json;
    // your logic here
});

答案 1 :(得分:0)

var grid;

function startFilter(dataReady ){
        var grid = [];
        $.getJSON('data/gridData1.json',function(json){
            grid = json;

             dataReady () ; 
        });
        console.log(grid);
        return grid;
    }

startFilter ( function () {
console.log(grid);
} ) ;