簡體   English   中英

javascript:獲取回調函數中變量的值

[英]javascript: getting the value of variables inside a callback function

我正在使用谷歌地理編碼器,我似乎找不到找到在回調函數中設置全局變量值的方法

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調用的信息。
您正在嘗試使用尚未設置的全局變量。
您的函數不能僅僅返回,它需要使用回調函數返回值,並且需要從地址解析回調內部調用該回調函數
請注意,您的問題標題是“在回調內部”,但是您不是從內部(當前是從外部)進行控制台日志。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM