У меня такое чувство, что вы не хотите начинать следующую итерацию цикла, пока поиск геокодирования не будет действительно завершен. Итак, ключевое слово «обратный вызов»:
вместо for...
, сделайте следующее. Я знаю, что это может быть не то, к чему вы привыкли, но, пожалуйста, постарайтесь понять это (это должно работать).
var dogeo = function(callback)
{
srPerformGeocode("address", callback);
};
var counter = 0;
var geoCallback = function()
{
counter++;
if(counter < 20)
{
dogeo(geoCallback);
}
};
dogeo(geoCallback);
function srPerformGeocode(address, callback){
if (geocoder){
geocoder.geocode({ 'address': address }, function (results, status) {
// this function is a callback of geocode()
if (status == google.maps.GeocoderStatus.OK){
$('#status').prepend("Success : " + address + "<br/>");
}
else{
$('#status').prepend("Failed : " + address + "<br/>");
}
callback(); // let the caller know this is done
});
}
}