Appcelerator / Titanium - 从函数内调用变量

时间:2016-05-25 14:24:13

标签: javascript ios appcelerator appcelerator-titanium

我有一些代码如下,它获取当前位置,然后创建一个包含该信息的变量。我想在函数之外使用该变量,但到目前为止我尝试过的所有内容都失败了。如果它在函数内,则下面的警报可以工作,但只要你把它放在外面它就是空白。我也尝试在alloy.js中创建全局变量,但这似乎也没有用。我知道这很简单但需要更多的想法:)

Titanium.Geolocation.getCurrentPosition(function(e) {
if (e.error) { 
    alert('Error: ' + e.error); 
} else { 

    var params = {
        latitude: e.coords.latitude,
    };

    return params;

} 
});



alert(params);

1 个答案:

答案 0 :(得分:3)

这与Titanum无关,而是一个基本的javascript问题。 params是一个局部变量(在getCurrentPosition中)。您可以创建如下全局范围:

var coords;

Titanium.Geolocation.getCurrentPosition(function(e) {
    if (e.error) { 
        alert('Error: ' + e.error); 
    } else { 
        coords = {
            latitude: e.coords.latitude,
            longitude: e.coords.longitude,
        };
    } 
});

但请记住:coords可能不会立即设置,因为在getCurrentPosition函数完成或拥有数据之前可能需要一些时间。