Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将变量传递给保持不变的异步回调函数?_Javascript_Google Maps_Asynchronous - Fatal编程技术网

Javascript 如何将变量传递给保持不变的异步回调函数?

Javascript 如何将变量传递给保持不变的异步回调函数?,javascript,google-maps,asynchronous,Javascript,Google Maps,Asynchronous,我正在使用GoogleMapsJSAPI对一些地址进行地理编码,但我需要访问地理编码函数回调中的许多变量。地理编码器是一个异步函数 我的代码如下: for (var prop in markerData) { geocoder.geocode( { address: addressData }, function(results, status) { if (status == 'OK') { lat = results[0].geometry.l

我正在使用GoogleMapsJSAPI对一些地址进行地理编码,但我需要访问地理编码函数回调中的许多变量。地理编码器是一个异步函数

我的代码如下:

for (var prop in markerData) {
    geocoder.geocode( { address: addressData }, function(results, status) {
        if (status == 'OK') {
            lat = results[0].geometry.location.lat();
            lng = results[0].geometry.location.lng();

            console.log(addressData);

            markerInfo = { 
                lat: lat, 
                lng: lng,
                firstname: markerData[prop].firstname,
                lastname: markerData[prop].lastname,
                company: markerData[prop].company,
                addressFormatted: addressData,
                street: markerData[prop].street,
                city: markerData[prop].city,
                postcode: markerData[prop].postcode,
                telephone: markerData[prop].telephone
            }

            markers[i] = new google.maps.Marker({
                map: map,
                position: {lat: lat, lng: lng},
                title: markerData[prop].firstname + ' ' + markerData[prop].lastname,
                markerInfo: markerInfo
            });

            markers[i].addListener('click', function() {
                updateInfo(this.markerInfo);
            });

            $.get('cache.php', {
                address: addressData,
                lat: lat,
                lng: lng
            });
        }
    });
}
addressData
始终是
markerData
的最后一个条目的值<代码>标记数据数据绝对正确


我需要一种将
addressData
markerData
传递给
geocoder.geocode
函数的方法,该函数将在回调中访问。

我的注释示例:

for (var prop in markerData) {
    (function(addressData){
        geocoder.geocode( { address: addressData }, function(results, status) {
            //Other code
        });
    })(addressData);
}

你可能想用生命来包围电话。这样,传递的变量内部将保持不变。我不确定为什么会将其标记为重复,尤其是与链接的问题。这是在不同情况下发现的不同问题。仅仅因为一个问题有相同的答案并不意味着它是一个重复的问题。这是完美的。从没听说过生活,威尔读过。非常感谢。