如何在范围之外定义变量?

时间:2013-01-28 18:48:45

标签: javascript html ajax

有没有办法解决这个问题,以便我可以在microAjax函数中获取范围之外的变量?

我希望latlng在microAjax之外采用ipaddress的值。

var latlng = microAjax("php/latlng.php", function(ipaddress) {
            console.log(ipaddress);
            return ipaddress;
        });

        console.log(latlng);

我也尝试过这样的事情:

var lat;
var lng;
microAjax("php/latlng.php", function(ipaddress) {
            var arrayOfLocation = ipaddress.split(" ");
            lat = parseFloat(arrayOfLocation[0]);
            lng = parseFloat(arrayOfLocation[1]);
            console.log(ipaddress);
        });

        console.log(lat);
        console.log(lng);

但在这两种情况下,函数外部的变量都是未定义的。如何从microAjax中定义变量,但在其范围之外?

1 个答案:

答案 0 :(得分:1)

您的问题是异步调用,而不是范围。

在第二个示例中输出lat和lng后,ajax完成。

在jquery ajax中,参数async修复了这个问题。 http://api.jquery.com/jQuery.ajax/ (如果你使用的是jquery)