Funkcja ta łączy się z Google Maps i zwraca mi współrzędne geograficzne adresu, robię sobie funkcję JS:
var ddd; function foo(p){ alert(p); //1 ddd=p; } var geo2 = new GClientGeocoder(); function getAddress2(search) { var p; geo2.getLocations(search, function (result) { if (result.Status.code == G_GEO_SUCCESS) { p = result.Placemark[0].Point.coordinates; var lat=p[1]; var lng=p[0]; foo(p); } } ); } var address = "Legnicka, Wrocław, Poland"; getAddress2(address); alert(ddd); //2
i teraz funkcja foo jest wywoływana, w niej jest wywoływana funkcja alert, i dziwnym trafem najpierw następuje w funkcji foo return a później dopiero alert nr 2 jest wywoływany (czyli "udefinend") a dopiero później (po otrzymaniu odpowiedzi z Google) alert 1 :/
Jak do tego podejść aby funkcja zwracała mi zmienną (np. p/lat/lng)?