Задать вопрос
@MrFox235
Начинающий веб-разработчик

Как вынести переменную из функции?

У меня есть такая функция:
function run() {
     directionsService.route(route,
         function(response) {
              directionsRenderer.setDirections(response);
              var directionsData = response.routes[0].legs[0];

              if (!directionsData) {
                 window.alert('Directions request failed');
                 return;
              } else {
                let dist = directionsData.distance.value;
                let distKm = parseInt(dist / 1000);
          
                console.log(distKm);

                document.getElementById('msg').innerHTML.remove(this) += " Driving distance is " + directionsData.distance.text + " (" + directionsData.duration.text + ").";
              }
    });
}


Как можно вынести переменную "distKm" за всю эту функцию?
  • Вопрос задан
  • 159 просмотров
Подписаться 1 Средний 3 комментария
Решения вопроса 3
delphinpro
@delphinpro Куратор тега JavaScript
frontend developer
function run(cb) {
     directionsService.route(route,
         function(response) {
                // ...
                let distKm = parseInt(dist / 1000);
                cb(distKm);
              }
    });
}

run(function(result){
  console.log(result);
})


с учетом ваших комментов:

document.getElementById('btn-next').onclick = () => {
  run(function(result){
    console.log(result);
  })
};
Ответ написан
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
return distKm ;
Ну или

window.distKm
Ответ написан
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Так просто взять и вынести же:
function run() {
    ...
    let distKm = parseInt(dist / 1000)
    ...
}

Превращается в:
let distKm;
function run() {       
    ...
    distKm = parseInt(dist / 1000)
    ...
}

Изучайте основы языка.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы