Это может быть новичок, но я пытаюсь создать функцию, которая возвращает true. Однако это основано на том, что происходит внутри нескольких других функций внутри.Лучший способ «вернуть истину» на основе условий от вложенных функций
function checkGeo(){
// CHECK FOR GEOLOCATION
if("geolocation" in navigator) {
navigator.geolocation.getCurrentPosition(function(position){
sessionStorage.pinlat = position.coords.latitude;
sessionStorage.pinlon = position.coords.longitude;
// position object is set!
});
// position is not defined
if (position.coords.latitude && position.coords.longitude){
return true;
}
}
}
Это порядок, я хочу, чтобы случиться с моей геолокации проверки, но я немного удивлен, что вложенные если тестируется перед заканчивает метод getCurrentPosition.
Ввод этого условия в функцию успеха getCurrentPosition и возврат истины оттуда не делает checkGeo возвратом true. Как проверить, завершилась ли эта асинхронная функция и, следовательно, проверить ее результаты для return true
?
Получает ли 'getCurrentPosition' асинхронный веб-запрос случайно? –
@WiktorZychla Да, я думаю, это – Downgoat
Из спецификации: «При вызове он должен немедленно вернуться, а затем асинхронно попытаться получить текущее местоположение устройства». Также я слышу («геолокация» в навигаторе) является наименее ресурсоемким на устройстве/подключении. – BenRacicot