Как я могу получить доступ к объекту обратного вызова успеха navigator.geolocation.getCurrentPosition вне функции при ее вызове?
Допустим, у меня есть функция в файле (называемая UserLoc), которую я экспортирую.
export const locateCurrentPosition = () => {
const currentPosition = navigator.geolocation.getCurrentPosition(
position => {
console.log(position);
return position;
},
error => {
console.log(error.message);
return error;
},
{
enableHighAccuracy: true,
timeout: 10000,
maximumAge: 1000
}
);
return currentPosition;
};
Теперь в одном из моих компонентных js-файлов я хочу вызвать эту функцию внутри componentDidMount().
const {
locateCurrentPosition
} = require("../Views/components/User/UserMap/UserLoc");
async componentDidMount(){
console.log(locateCurrentPosition())
locateCurrentPosition().then(data=>console.log(data))
}
Когда я вызываю функцию внутри моего componentDidMount, она всегда возвращает значение undefined. Когда я регистрирую это, он выводит позицию внутри локальной области (т.е. первый блок кода выше, где я использую console.log(position). Каков наилучший способ получить объект позиции из успешного обратного вызова и вернуть его в мой компонентDidMount при вызове?
Я пробовал обещания, затем операторы с моим консольным журналом, а также различные типы возвратов, но мне всегда кажется, что я не определен. Операторы возврата в функции locateCurrentPosition не работают. Какие-либо предложения?