这是我想做的事情:

$.getJSON( "http://api.openweathermap.org/data/2.5/weather?lat="+latitude+"&lon="+longitude", function(data) {
fh = data;
});


我正在尝试做一个

console.log(fh);


$ .getJSON之外

是否可以在此函数之外获取fh var?
我正在尝试这样做,并在控制台上显示了一个错误:


  未捕获的ReferenceError:未定义fh

最佳答案

您应该将fh创建为全局变量,然后将其允许在getJSON方法内进行更新并在方法外部进行访问。

它将等于undefined,直到从getJSON请求接收到对服务器的响应为止。

因此,要使其正常运行,您应该使用setTimeout。实际上,您应该使用promises,但这可能不在问题范围内。只要服务器在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 - 在功能之外获取值(value),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41579928/

10-12 00:10
查看更多