Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [js] Funkcja która zwraca wartość dopiero po otrzymaniu odpowiedzi, Synchronizacja?
TomASS
post
Post #1





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

Ostrzeżenie: (0%)
-----


Witam, używam funkcji getLocations z GoogleMaps API.

Funkcja ta łączy się z Google Maps i zwraca mi współrzędne geograficzne adresu, robię sobie funkcję JS:
  1. var ddd;
  2.    function foo(p){
  3.          alert(p); //1
  4.          ddd=p;
  5.    }
  6.      var geo2 = new GClientGeocoder();
  7.      
  8.      function getAddress2(search) {
  9.            var p;
  10.        geo2.getLocations(search, function (result)
  11.          {
  12.            if (result.Status.code == G_GEO_SUCCESS) {
  13.              p = result.Placemark[0].Point.coordinates;
  14.              var lat=p[1];
  15.              var lng=p[0];
  16.              foo(p);
  17.            }
  18.          }
  19.        );
  20.      }
  21.      
  22.      var address =  "Legnicka, Wrocław, Poland";
  23.      getAddress2(address);
  24.      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)?


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 07:57