设置全局变量,但未获得预期结果

Setting global variables but not getting expected result

本文关键字:结果 全局变量 设置      更新时间:2023-09-26

我在设置一些全局变量以在我正在编写的脚本之外使用时遇到问题。我相信我设置了正确的它们,但它们似乎并不合作。我的控制台输出始终是一个空字符串,因为它们应该在演示网页的主要调用函数中定义。所有其他数据似乎都工作正常,如果我打印出来而不将其设置为变量,那么它工作正常。但是,我需要变量,以便我可以在此脚本之外调用它们。有什么想法吗?

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()函数