从Cordova中的getCurrentPosition返回值

时间:2016-04-30 05:01:46

标签: javascript cordova asynchronous return-value

我试图从navigator.geolocation.getCurrentPosition函数返回位置值。

this Cordova doc navigator.geolocation.getCurrentPosition中使用onSuccessonError函数来获取位置,但我需要这样的内容:

var onSuccess = function(position) {
  alert('Latitude: ' + position.coords.latitude + '\n' + 'Longitude: ' + position.coords.longitude + '\n' + 'Altitude: ' + position.coords.altitude          + '\n' + 'Accuracy: ' + position.coords.accuracy + '\n' + 'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' + 'Heading: ' + position.coords.heading + '\n' + 'Speed: ' + position.coords.speed + '\n' + 'Timestamp: ' + position.timestamp + '\n');
};
// onError Callback receives a PositionError object
function onError(error) {
  alert('code: ' + error.code + '\n' + 'message: ' + error.message + '\n');
}

我想要的是:

var p = navigator.geolocation.getCurrentPosition(onSuccess, onError);

如何将值从navigator.geolocation.getCurrentPosition返回到p?

1 个答案:

答案 0 :(得分:2)

你想要什么,你能拥有什么是两件不同的事情。 Cordova / Phonegap中的几乎所有内容都是异步的,这意味着您无法执行var p = navigator.geolocation.getCurrentPosition(onSuccess, onError);。您使用onSuccess函数返回值。

如果没有错误且你在onSuccess,那么这就是你的代码继续的地方,并将使用返回的位置。这意味着您可能需要重构代码和/或重新考虑工作流程。