javascript:在回调函数中获取变量的值

标签 javascript jquery google-geocoder

我正在使用 google geocoder,但我似乎找不到在回调函数中设置全局变量值的方法

var status_temp;
var lat_temp;
var lng_temp;
var error_temp;
function set_status(status_input){
    status_temp=status_input;
}
function set_lat(lat_input){
    lat_temp=lat_input;
}
function set_lng(lng_input){
    lng_temp=lng_input;
}
function set_error(error_input){
    error_temp=error_input;
}
function geocode_address(address_input){
    var status_string;
    var error_message;
    var lat;
    var lng;
    geocoder.geocode( { 'address': address_input}, function(results, status){
        if (status == google.maps.GeocoderStatus.OK) {
            set_status('found');
            set_lat(results[0].geometry.location.lat());
            set_lng(results[0].geometry.location.lng());
        } else {
            console.log("Geocode was not successful for the following reason: " + status);
            set_status('notfound');
            set_status(status);
        }
    });
    console.log(status_temp);
    if(status_temp==='found'){
        var data = ({
            status_string:status_temp,
            lat:lat_temp,
            lng:lng_temp,
        });
    }else{
        var data = ({
            status_string:status_temp,
            error_string:error_temp,
        });
    }
    return data;
}

我尝试使用常规方法设置全局变量,即在函数外部声明变量,我最近尝试的方法是使用函数设置变量。我做错了什么?

最佳答案

您需要阅读有关异步 javascript 调用的内容。
您正在尝试使用尚未设置的全局变量。
您的函数不能只返回,它需要使用回调来返回值,并且需要从地理编码回调内部调用回调
请注意,您的问题标题说“在回调中”,但您不是从内部进行控制台日志,它目前是从外部进行的。

关于javascript:在回调函数中获取变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26332096/

相关文章:

javascript - primeNG 中的对话框组件在移动 View 上没有响应

php - 显示一行 while 循环

javascript - openlayers 和谷歌地理编码器

javascript - 尝试让两张图片根据页面宽度调整大小

javascript - 替换 Google 脚本应用中的单元格值

jquery - 如何获取iframe中的页面标题?

android - 地理编码器阻止我的 Android 应用程序

javascript - Google 地理编码状态始终为空

javascript - jquery 脚本标签的意外标记非法

javascript - 表单还是 jQuery Ajax?