Rau*_*pin 6 javascript geolocation
我正在开发基于地理定位的应用程序,因此必须首先获取位置,甚至在执行应用程序的其余部分之前也是如此。那么,如何以同步方式转换此模块????
var geolocation = (function() {
'use strict';
var geoposition;
var options = {
maximumAge: 1000,
timeout: 15000,
enableHighAccuracy: false
};
function _onSuccess (position) {
console.log('DEVICE POSITION');
console.log('LAT: ' + position.coords.latitude + ' - LON: ' + position.coords.longitude);
geoposition = position
};
function _onError (error) {
console.log(error)
};
function _getLocation () {
navigator.geolocation.getCurrentPosition(
_onSuccess,
_onError,
options
);
}
return {
location: _getLocation
}
}());
Run Code Online (Sandbox Code Playgroud)
非常感谢!
我认为你不应该尝试同步进行。只需为地理位置获取器实现某种事件系统即可。这样它可以异步工作,但地理定位会初始化需要地理定位的应用程序或组件。
这是一个简单的例子来说明它是如何工作的:
var callbacks = [];
var onGeolocationReady = function (callback) {
callbacks.push(callback);
}
function _onSuccess (position) {
// iterare through each callback and invoce them
}
// and making component
onGeolocationReady(function () {
// some code here which requires geolocation
});
Run Code Online (Sandbox Code Playgroud)
我希望这有帮助。
| 归档时间: |
|
| 查看次数: |
5460 次 |
| 最近记录: |