我在设置一些全局变量时遇到问题,这些变量要在我编写的脚本之外使用。我相信我正确地设置它们但它们似乎没有合作。我的控制台输出始终是一个空字符串,因为它们应该在演示网页的主要调用函数中定义。所有其他数据似乎工作正常,如果我打印出来而不将其设置为变量,那么它工作正常。但是我需要变量,以便我可以在这个脚本之外调用它们。有什么想法吗?
var latitude = "", longitude = "";
$(document).ready(function() {
$.ajax({
dataType: "json",
url:"http://api.geonames.org/searchJSON?q=Atlanta&maxRows=10&username=Demo"
}).then(function(data){
console.log(data);
latitude = data.geonames[0].lat; <---Variables are supposed to be set here
longitude = data.geonames[0].lng; <----Variables are supposed to be set here
$('.map-Latitude').append(data.geonames[0].lat); <----Works well
$('.map-Longitude').append(data.geonames[0].lng); <----Works Well
});
});
console.log("Latitude is: " + latitude); <---- prints out an empty string
console.log("Longitude is: " + longitude); <---- prints out an empty string
我似乎无法让这个工作,我觉得我正在设置变量,但他们似乎没有运作良好。谢谢!
答案 0 :(得分:1)
您的$.ajax()
来电是异步。在浏览器收到HTTP响应之前,调用的结果不可用。
将console.log()
来电置于<{1}}函数内。