javascript - 在函数外获取值

标签 javascript jquery

这是我正在尝试做的事情:

$.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/

相关文章:

javascript - 将开发 NPM 依赖项加入到单个元包中

javascript - 在迭代 jquery 对象时添加 html

jquery - 在 chrome 中单击时旋转轮子的 js 文件

javascript - 多个odata绑定(bind)sapui5

javascript - 保持类(class)活跃,直到里面的最后一个类活跃

javascript - 获取child的child的子节点值

javascript - 翻译在 Velocity.js 中不起作用

java - wicket 组件中的提示()

javascript - 如何组合具有依赖状态的 redux reducer

javascript - Mouseenter 事件处理程序不适用于 li