var city;
function getCity(){
$.getJSON("http://ip-api.com/json/?callback=?", function(data) {
city= data.city;
alert(city);
});
}
getCity();
alert(city);
我两次警告同一个城市变量,一次在函数getcity()内,最后一次。但是它们都给出了不同的值。函数内部给出当前城市,而函数外部给出未定义。我想同时获得两个城市。
最佳答案
AJAX是异步的。
这意味着getCity
将在以后的某个时刻检索数据,但是脚本不会停止,并且将触发alert(city)
,其中curcurty不包含任何值(未定义)
使用如下回调:
function getCity( callback ){
$.getJSON("http://ip-api.com/json/?callback=?", function(data) {
var city= data.city;
alert(city);
callback( city );
});
}
getCity(function( city ){
alert(city);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
关于javascript - 使用Java使用Json检索数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37374361/