我似乎无法访问地理位置 return 值
I can't seem to access the geolocation return value
我正在尝试使用地理位置 api 获取用户位置,在我的成功回调中,我想 return 具有位置值的 getPosition 函数。
我尝试了一些方法,但到目前为止没有一个成功,这就是我现在所处的位置。
function getPosition() {
// If geolocation is available, try to get the visitor's position
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
console.log("Getting the position information...")
} else {
alert("Sorry, your browser does not support HTML5 geolocation.");
}
function successCallback(position) {
return position
}
function errorCallback(error) {
alert("Sorry, we can't retrieve your local weather without location permission.");
}
};
const getLocalWeather = async () => {
if(loading === 'loading') return
setLoading('loading')
console.log(getPosition())
// this console log should return the position from getPosition
setLoading('done')
};
getPosition 函数本身工作正常,但我无法访问它在 getLocalWeather 函数中的 return 值。
任何帮助将不胜感激,我已经坚持了一段时间。
从表面上看,您已经熟悉 async/await,因此请将您的 getPosition
代码包装在 promise 中,然后 await
将响应包装在 getLocalWeather
.
这段代码可能无法在代码段中运行,但我已经在本地对其进行了测试,它可以毫无问题地记录位置。
function getPosition() {
return new Promise((res, rej) => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success, error);
} else {
console.log("Sorry, your browser does not support HTML5 geolocation.");
}
function success(position) {
res(position)
}
function error(error) {
console.log("Sorry, we can\'t retrieve your local weather without location permission.");
}
});
};
async function getLocalWeather() {
console.log(await getPosition())
};
getLocalWeather();
我正在尝试使用地理位置 api 获取用户位置,在我的成功回调中,我想 return 具有位置值的 getPosition 函数。
我尝试了一些方法,但到目前为止没有一个成功,这就是我现在所处的位置。
function getPosition() {
// If geolocation is available, try to get the visitor's position
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(successCallback, errorCallback);
console.log("Getting the position information...")
} else {
alert("Sorry, your browser does not support HTML5 geolocation.");
}
function successCallback(position) {
return position
}
function errorCallback(error) {
alert("Sorry, we can't retrieve your local weather without location permission.");
}
};
const getLocalWeather = async () => {
if(loading === 'loading') return
setLoading('loading')
console.log(getPosition())
// this console log should return the position from getPosition
setLoading('done')
};
getPosition 函数本身工作正常,但我无法访问它在 getLocalWeather 函数中的 return 值。
任何帮助将不胜感激,我已经坚持了一段时间。
从表面上看,您已经熟悉 async/await,因此请将您的 getPosition
代码包装在 promise 中,然后 await
将响应包装在 getLocalWeather
.
这段代码可能无法在代码段中运行,但我已经在本地对其进行了测试,它可以毫无问题地记录位置。
function getPosition() {
return new Promise((res, rej) => {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success, error);
} else {
console.log("Sorry, your browser does not support HTML5 geolocation.");
}
function success(position) {
res(position)
}
function error(error) {
console.log("Sorry, we can\'t retrieve your local weather without location permission.");
}
});
};
async function getLocalWeather() {
console.log(await getPosition())
};
getLocalWeather();