Javascript 无法在变量中存储一个函数值

Javascript 无法在变量中存储一个函数值,javascript,jquery,ajax,google-maps,jquery-ajaxq,Javascript,Jquery,Ajax,Google Maps,Jquery Ajaxq,我正在从jQueryAjax调用中获取值,但无法保存在全局变量中,我想在另一个函数中使用该值。我想在初始化函数中获得赋值 javascript代码 var dustValue; $.ajax({ type: "GET", url: "http://my url", dataType: "json", success: function (data) { dustValue = data.sensorsdata.PHValue; } });

我正在从jQueryAjax调用中获取值,但无法保存在全局变量中,我想在另一个函数中使用该值。我想在初始化函数中获得赋值

javascript代码

var dustValue;
$.ajax({
    type: "GET",
    url: "http://my url",
    dataType: "json",
    success: function (data) {
        dustValue = data.sensorsdata.PHValue;
    }
});
var myCenter = new google.maps.LatLng(22.8046, 86.2029);
function initialize() {
    var mapProp = {
        center: myCenter,
        zoom: 17,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
    var value = dustValue;//78.55
    var dustbinstatus = '';

    if (value < 50) {
        dustbinstatus = 'img/dustbinempty.png';
    } else if (value > 50 && value < 90) {
        dustbinstatus = 'img/dustbinfull.png';
    } else if (value > 90) {
        dustbinstatus = '3.jpg';
    }

    var marker = new google.maps.Marker({
        position: myCenter,
        icon: v_icon
    });
        marker.setMap(map);
}
google.maps.event.addDomListener(window, 'load', initialize);
身体


ajax调用是异步的,所以您可以像下面这样做。我的意思是将你的google.maps.event行移到success函数中

var dustValue;
$.ajax({
    type: "GET",
    url: "http://my url",
    dataType: "json",
    success: function (data) {
        dustValue = data.sensorsdata.PHValue;
        google.maps.event.addDomListener(window, 'load', initialize);
    }
});
var myCenter = new google.maps.LatLng(22.8046, 86.2029);
function initialize() {
    var mapProp = {
        center: myCenter,
        zoom: 17,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
    var value = dustValue;//78.55
    var dustbinstatus = '';

    if (value < 50) {
        dustbinstatus = 'img/dustbinempty.png';
    } else if (value > 50 && value < 90) {
        dustbinstatus = 'img/dustbinfull.png';
    } else if (value > 90) {
        dustbinstatus = '3.jpg';
    }

    var marker = new google.maps.Marker({
        position: myCenter,
        icon: v_icon
    });
        marker.setMap(map);
}

您可以将该值保存在隐藏元素中,稍后从同一元素进行访问;
var dustValue;
$.ajax({
    type: "GET",
    url: "http://my url",
    dataType: "json",
    success: function (data) {
        dustValue = data.sensorsdata.PHValue;
        google.maps.event.addDomListener(window, 'load', initialize);
    }
});
var myCenter = new google.maps.LatLng(22.8046, 86.2029);
function initialize() {
    var mapProp = {
        center: myCenter,
        zoom: 17,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);
    var value = dustValue;//78.55
    var dustbinstatus = '';

    if (value < 50) {
        dustbinstatus = 'img/dustbinempty.png';
    } else if (value > 50 && value < 90) {
        dustbinstatus = 'img/dustbinfull.png';
    } else if (value > 90) {
        dustbinstatus = '3.jpg';
    }

    var marker = new google.maps.Marker({
        position: myCenter,
        icon: v_icon
    });
        marker.setMap(map);
}
$.when(ajaxfunction()).done(your logic);