首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开放天气ajax

开放天气ajax
EN

Stack Overflow用户
提问于 2018-09-30 22:36:22
回答 1查看 59关注 0票数 0

我正在尝试对Openweathermap执行ajax调用,一旦函数离开ajax,我的变量就不会被更新。请有人解释一下为什么我的var tmp没有被更新。

代码语言:javascript
复制
    var url1 = "http://api.openweathermap.org/data/2.5/find?lat=" + marker.position.lat()+"&lon="+marker.position.lng() + "&type=accurate&units=imperial&mode=json&APPID=8cbc2d4c3edf26435cf160f3cee969ed";
    var tmp;
    $.ajax({
    type: 'get',
    dataType: "jsonp",
    url: url1,
    async: false,
    success:function (data) {
tmp =data.list[0].main.temp +"F " + data.list[0].weather[0].description;
console.log(tmp); //it logs correctly here 
  }
});
console.log(tmp); //it says it's undefined here
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-30 23:40:11

Ajax是异步的,不是同步的。

  • ajax回调中的第一个TMP将在执行之前等待ajax完成。
  • ajax回调之外的第二个TMP将在等待ajax完成之前立即执行。

你可以在https://rowanmanning.com/posts/javascript-for-beginners-async/上读到

一些js解决方案

  • 回调( beginner1 )
  • Async.js ( beginner2 )
  • 承诺(中间)
  • ES6异步/等待(前进)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52582718

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档