我正在访问一个 json 文件,该文件每页有 50 个条目,超过 x 个页面。我有条目总数,比如 500 - 相当于 10 页。
我从 json 文件中获取第 1 页的数据,将数据传递给数组,然后重复该函数,但这次是第 2 页。
我已经创建了这个函数,它循环完美地递增和获取每一页,但它不会等待 json 数据被解析并在再次循环之前传递给数组。
基本上我想等到数据处理完毕后再继续。
到目前为止,我的代码大致是这样的:
function getJsonData(metroID){
currentPageNo = 0;
totalPages = 'x';
count = 0;
function jsonLoop(){
meroAreaSearchString = 'http://jsonurl'+currentPageNo;
$.getJSON(meroAreaSearchString,{},function( data ){
if(totalPages == 'x'){
var totalEntries = data.resultsPage.totalEntries;
var perPage = data.resultsPage.perPage;
totalPages = (totalEntries/perPage);
log(totalEntries+', '+perPage+', '+totalPages);
log(Math.round(totalPages));
}
$.each(data.resultsPage.results.event, function(i,item){
var name = item.displayName;
var type = item.type;
var valueToPush = new Array();
valueToPush[0] = name;
valueToPush[1] = type;
valueToPush[3] = count;
locations.push(valueToPush);
count++;
});
});
if(currentPageNo == totalPages){
log(locations);
alert('finished processing all results');
}else{
currentPageNo++;
jsonLoop();
}
currentPageNo++;
jsonLoop();
}
}