获取设备当前位置(navigator.location.getCurrentPosition)后将信息保存到数据库,React Native
save info to database after getting device current location (navigator.location.getCurrentPosition), React Native
我想将一些信息保存到数据库中,但应该在用户定位功能完成获取当前用户位置后发生。
async function getImmediate() {
let coord;
navigator.geolocation.getCurrentPosition(
async position => {
const latitude = await JSON.stringify(position.coords.latitude);
const longitude = await JSON.stringify(position.coords.longitude);
coord = await position.coords.latitude;
},
error => Alert.alert(error.message),
{
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 1000
}
);
return coord;
}
async function saveNow(){
let coordinates = await getImmediate();
//save to the database
console.log(coordinates)
}
我得到的是空值和未定义的值。
我将感谢您的帮助,因为我似乎无法快速找到问题所在...
您可以使用承诺来实现您想要做的事情。下面的代码应该可以工作并且 return 结果:
function getImmediate() {
return new Promise((resolve, reject) =>
navigator.geolocation.getCurrentPosition(
position => {
const latitude = JSON.stringify(position.coords.latitude);
const longitude = JSON.stringify(position.coords.longitude);
resolve({ latitude, longitude});
},
error => Alert.alert(error.message),
{
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 1000
}
)
);
}
async function saveNow(){
let coordinates = await getImmediate();
//save to the database
console.log(coordinates)
}
我想将一些信息保存到数据库中,但应该在用户定位功能完成获取当前用户位置后发生。
async function getImmediate() {
let coord;
navigator.geolocation.getCurrentPosition(
async position => {
const latitude = await JSON.stringify(position.coords.latitude);
const longitude = await JSON.stringify(position.coords.longitude);
coord = await position.coords.latitude;
},
error => Alert.alert(error.message),
{
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 1000
}
);
return coord;
}
async function saveNow(){
let coordinates = await getImmediate();
//save to the database
console.log(coordinates)
}
我得到的是空值和未定义的值。
我将感谢您的帮助,因为我似乎无法快速找到问题所在...
您可以使用承诺来实现您想要做的事情。下面的代码应该可以工作并且 return 结果:
function getImmediate() {
return new Promise((resolve, reject) =>
navigator.geolocation.getCurrentPosition(
position => {
const latitude = JSON.stringify(position.coords.latitude);
const longitude = JSON.stringify(position.coords.longitude);
resolve({ latitude, longitude});
},
error => Alert.alert(error.message),
{
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 1000
}
)
);
}
async function saveNow(){
let coordinates = await getImmediate();
//save to the database
console.log(coordinates)
}