设置全局变量,但未获得预期结果
Setting global variables but not getting expected result
我在设置一些全局变量以在我正在编写的脚本之外使用时遇到问题。我相信我设置了正确的它们,但它们似乎并不合作。我的控制台输出始终是一个空字符串,因为它们应该在演示网页的主要调用函数中定义。所有其他数据似乎都工作正常,如果我打印出来而不将其设置为变量,那么它工作正常。但是,我需要变量,以便我可以在此脚本之外调用它们。有什么想法吗?
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
我似乎无法让它工作,我觉得我正在正确设置变量,但它们似乎工作得不好。谢谢!
您的$.ajax()
调用是异步的。 在浏览器收到 HTTP 响应之前,调用的结果不可用。
将console.log()
调用置于.then()
函数内。
相关文章:
- 全局变量和全局对象的属性之间有什么区别吗
- delete关键字在全局变量上的不同行为
- 在javascript函数中设置全局变量
- 如何将getJson的响应保存在全局变量中
- 从Javascript方法返回全局变量
- AngularJS中的封装窗口全局变量
- javascript隐式全局变量
- 如何从onclick函数设置全局变量并将其传递给另一个JS文件
- 如何使全局变量仅特定于该文件
- 在page.open()-PhantomJS中无法访问全局变量
- 使用全局变量来存储数字(JavaScript)
- 如何将变量声明为全局变量
- 设置全局变量,但未获得预期结果
- Javascript Ajax将onreadystatechange的结果保存在全局变量中
- 声明和定义全局变量作为函数结果有时有效
- 如何比较两个事件的结果?(可能使用局部或全局变量?)
- 如何存储 websql .executeSql 结果到一个全局变量中
- 将从 sql 适配器返回的结果集分配给全局变量及其用法
- 如何将函数的结果赋值到全局变量中?
- 将jQuery Ajax请求的结果设置为全局变量