您好我正在使用以下代码。我需要一些方法让脚本等到clickButton()完成后再运行initialize()。或者可能要等到推送完成?任何帮助,将不胜感激。感谢
$("#getButtonValue").click(clickButton);
function clickButton() {
for( i = 1; i < counter; i++){
var geocoder = new google.maps.Geocoder();
var address = $('#textbox' + i).val()
geocoder.geocode( { 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latCoords.push(results[0].geometry.location.lat());
longCoords.push(results[0].geometry.location.lng());
}
});
}
initialize();
}
答案 0 :(得分:0)
我看到你正在尝试做什么。
不使用promise,一个简单的解决方法是创建一个计数器,以查看是否所有geocoder.geocode()调用都已完成。
$("#getButtonValue").click(clickButton);
function clickButton() {
// A counter variable
int completeCount = 0;
for( i = 1; i < counter; i++){
var geocoder = new google.maps.Geocoder();
var address = $('#textbox' + i).val()
geocoder.geocode( { 'address': address}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latCoords.push(results[0].geometry.location.lat());
longCoords.push(results[0].geometry.location.lng());
// Increment completeCount
completeCount++;
// If all geocoder.geocode() calls received an "OK", initialize()
if (completeCount == counter) {
initialize();
}
}
});
}
}