Это простой вопрос, но я не могу это решить.Область переменной в javascript
Спецификации не важны, но вот суть. У меня есть некоторый код, как это:
var lat = 0;
var lon = 0;
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
lat = position.coords.latitude;
lon = position.coords.longitude;
});
}
То, что я думаю, что он делает это:
- Установите широты и долгота до 0
- Если браузер имеет геолокации, перезаписывать эти переменные с реальными значениями
Однако, в конце этого фрагмента, lat и lon все еще 0. Я попытался добавить var
s, передав lat и lon функции и т. Д., Но без успеха ...
Как это сделать?
А, ответы имеют большой смысл. Я знал, что это асинхронно, но я не привык к программированию в этом стиле. Как я могу конкретно выполнить эту работу?После этого куска я использую ajax для доступа к API и не хочу повторять код дважды в зависимости от того, знаем мы местоположение или нет. –
перевести вызов на ваш другой API * внутри * обратный вызов из 'getCurrentPosition' – Pointy