Если хотите использовать асинхронные операции в синхронном стиле, придется прикрутить промисы
/** Переписываем с промисами */
function getLoc(options) {
if (navigator.geolocation ){
// Запускаем новый промис
return new Promise((resolve, reject) => {
navigator.geolocation.getCurrentPosition((pos) => {
resolve(pos);
}, (err) => {
reject(err);
}, options);
});
} else {
// Если нет, возвращаем заглушку, или можете сделать "reject"
return Promise.resolve({
pos: {
coords: {
latitude: 0,
longitude: 0
}
}
});
}
}
getLoc()
.then((pos) => {
const {
latitude: lat,
longitude: lon
} = pos.coords;
console.log("Wow");
console.log("So promissed");
console.log(lat, lon);
})
.catch((err) => {
// Пользователь отказался давать координаты
console.log(":(");
console.error(err);
});