这是我正在尝试做的事情:
$.getJSON( "http://api.openweathermap.org/data/2.5/weather?lat="+latitude+"&lon="+longitude", function(data) {
fh = data;
});
我正在尝试做一个
console.log(fh);
外部$.getJSON
是否可以在此函数之外获取 fh var? 我正在尝试此操作并在控制台上显示错误:
Uncaught ReferenceError: fh is not defined
最佳答案
您应该创建 fh
作为全局变量,然后允许它在 getJSON
方法内更新并在方法外部访问。
它将等于未定义
,直到从服务器收到 getJSON 请求的响应为止。
出于这个原因,要查看它的工作原理,您应该使用setTimeout
。在实践中,您应该使用 promise ,但这可能超出了问题的范围。只要服务器在 2 秒内做出响应,fh
的值就会被设置为服务器返回的数据。
下面的代码演示了这一点。
var fh;
$.getJSON("http://api.openweathermap.org/data/2.5/weatherlat=" + latitude + "&lon=" + longitude, function(data) {
fh = data;
});
setTimeout(function(){
console.log(fh)
}, 2000);
关于javascript - 在函数外获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579928/