【发布时间】:2015-07-04 18:40:00
【问题描述】:
这是我的问题
我有一个包含国家代码的 JSON 文件,以及一个获取随机国家代码的函数,如下所示:
function getRandomCountryCode(specificMap){
$.getJSON('../maps/' + specificMap + '.json', function( data ) {
var countries = [];
for (var i in data.country) {
countries.push(data.country[i].code);
}
var rndCountryCode = countries[Math.floor(Math.random()*countries.length)];
return rndCountryCode;
});
};
在另一个函数中,我调用上述函数并尝试将rndCountryCode 变量存储到另一个变量中,以便在新函数中可用。
function loadMap(map){
var specificMap = map;
var y = getRandomCountryCode(specificMap);
console.log("Y is : " + y);
}
我得到的只是undefined。我做了很多研究(here 和here 尤其是here) 并意识到这是因为$.getJSON 的异步性质,我应该使用回调,但对于我的生活我想不通出去。
感谢您的所有帮助。
【问题讨论】:
-
下面的答案帮助我理解了回调。我应该删除问题吗?还是别管了?
标签: javascript jquery asynchronous callback