Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/12/2014, 09:31
CarmaZone
 
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 13 años
Puntos: 0
Pregunta Obtener valor desde otro método

Hola gente, estoy aprendiendo javascript y estoy bastante confundido, soy programador java, y me resultan extraños los métodos asíncronos jajaja, además no me aclaro con los callbacks.

Pues bien, tengo el siguiente código que me devuelve la dirección de mi ubicación:

Todo funciona correcto y como veis tengo una variable "direccion" con el valor que necesito. El problema esque al ser una petición asíncrona se pierde el valor al salir de la función y lo necesito en otra función en la cual le paso una serie de datos a un web service.

He probado a que dirección sea una variable global al principio del .js pero veo que tampoco funciona y sigo obteniendo "undefined".

A ver si podeis aclararme un poco el tema. Gracias.

Código Javascript:
Ver original
  1. function getActualLocation() {
  2.     var options = {timeout: 30000, enableHighAccuracy: true};
  3.     navigator.geolocation.getCurrentPosition(sucessPosition , errorPosition, options);
  4. }
  5.  
  6. function sucessPosition(position) {
  7.    
  8.    var latitude = position.coords.latitude;
  9.    var longitude = position.coords.longitude;
  10.  
  11.    var reverseGeocoder = new google.maps.Geocoder();
  12.    var currentPosition = new google.maps.LatLng(latitude, longitude);
  13.     reverseGeocoder.geocode({'latLng': currentPosition}, function (results, status) {
  14.  
  15.     if (status == google.maps.GeocoderStatus.OK) {
  16.         if (results[0]) {
  17.            direccion = results[0].formatted_address;
  18.         } else {
  19.             navigator.notification.alert('Error');
  20.         }
  21.       } else {
  22.           navigator.notification.alert('Error');
  23.       }
  24.     });
  25. }
  26.  
  27. function errorPosition() {
  28.    navigator.notification.alert('Error');
  29. }