Как передать значение из одной функции в другую [дубликат]

330
08 января 2017, 19:22

На данный вопрос уже ответили:

  • Как вернуть значение из события или из функции обратного вызова? 2 ответа

Пытаюсь определить местоположение пользователя и использую Geolocation api. Есть функция, которая вызывается по нажатию кнопки (WhereAmI()). В ней я вызываю функцию из geolocation api. Вопрос в том, как передать результат из функции geolocation api в функцию WhereAmI(). Они ведь асинхронные. Можете пожалуйста предложить конкретное решение а не перекидывать на другие вопросы? Я пробовал сделать так как в том вопросе, но итог тот же самый.

function WhereAmI() 
{ 
    var str;//Вот это значение мне нужно получить 
 
    if (navigator.geolocation) { 
        alert("qq"); 
        //Запрашиваем текущие координаты устройства. 
 
        navigator.geolocation.getCurrentPosition( 
          function (position) { 
              str = position.coords.latitude.toString() + position.coords.longitude.toString();//Как это значение передать в функцию WhereAmI? 
 
 
          }, 
 
          function (error) { 
              alert("При определении координат произошла ошибка. Ее код: " + error.code); 
          }, 
 
          { 
              enableHighAccuracy: true,     // Режим получения наиболее точных данных 
              timeout: 10000,                // Максиальное время ожидания ответа (в миллисекундах) 
              maximumAge: 1000               // Максимальное время жизни полученных данных 
          } 
             ); 
    } 
    else { 
        this.handleGeolocationError('Ваш броузер не поддерживает GeolocationAPI.'); 
    } 
    alert(str);//Выводит "" 
}

Буду очень признателен если подскажите что делать.

Answer 1
function WhereAmI(callback){
  ...
  navigator.geolocation.getCurrentPosition(
    function (position) {
      var str = position.coords.latitude.toString() + position.coords.longitude.toString();
      callback(str);
    },
  ...
}
WhereAmI(function(aStr){
  console.log(aStr);
  document.getElementById("hiddenInputId").value = aStr;
});
READ ALSO
WP Rest API как получить thumbnail к постам?

WP Rest API как получить thumbnail к постам?

Доброго времени суток, есть задача, получить все посты аяксом и отобразить, с последним проблем нету, а вот с получением проблемы, работаю...

380
Почему срабатывает и if и else в JS

Почему срабатывает и if и else в JS

Здравствуйте ребята! У меня вот такая проблема, при переходе по ссылке и обратно выполняется сразу два условия и ложное и истина

302
Можно ли конфигурировать cucumber-js?

Можно ли конфигурировать cucumber-js?

Ранее писал тесты на java, но возникла потребность в том, чтобы писать их на js

343
Красим фон блока по времени /JavaScript / PHP

Красим фон блока по времени /JavaScript / PHP

Здравствуйте, У меня есть сайт конференции на нем расположены опросы по докладам (списком), доклады будут проводится в определенный день...

301