javascript - 从 Cordova 中的 getCurrentPosition 返回值

标签 javascript cordova asynchronous return-value

我正在尝试从 navigator.geolocation.getCurrentPosition 函数返回位置值。

this Cordova 文档 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?

最佳答案

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

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

关于javascript - 从 Cordova 中的 getCurrentPosition 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36950963/

相关文章:

javascript - 正确捕获异步函数node.js

javascript - 错误 : "Command "maximizeWindow"is not yet implemented"using webdriverIO v6

javascript - 动态测验 - 支持

javascript - 滚动 highcharts 图

javascript - iOS iPhone 11 在浏览器不断重新加载时黑白闪烁 : RBS Background assertion ConnectionTerminationWatchdog

c# - 异步仍然卡住 ui

C# - 如何正确使用进度条 (GUI)

javascript - 如何使用 innerHTML 将对象值正确打印到 DIV?

javascript - 上传多个图像 parse.com javascript

ios - 使用 iOS 9 的 Facebook 登录涉及黑屏