我需要多次使用一个函数,并希望避免一遍又一遍地编写相同的方法。我想使用$ .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之外。任何想法为什么,如果需要更多信息让我知道?
答案 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);
} ) ;