Я создал новую функцию обещания, чтобы установить асинхронную геолокацию как глобальную функцию.
function getUsrLoc() {
return new Promise(function(resolve, reject) {
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(resolve)
} else {
reject('Geolocation is not supported by this browser or OS');
}
});
}
Теперь я создал функцию, которая передает координаты в новый массив, возвращая новую переменную с ожидаемыми элементами массива после запуска метода .then.
//push coordinates into new array
function showPosition(position) {
var coordinates = new Array();
coordinates.push(Math.floor(position.coords.latitude))
coordinates.push(Math.floor(position.coords.latitude))
console.log(coordinates);
return coordinates;
}
Теперь я могу запустить метод .then функции getUsrLoc () и подключить функцию showPosition в качестве параметра.
getUsrLoc().then(showPosition);
Теперь при запуске координаты выводятся на консоль (после запроса браузера), но не возвращают координаты новой переменной.
coordinates;
//undefined
Что мне здесь не хватает?