geolocation.getCurrentPosition 如何返回值?
Posted
技术标签:
【中文标题】geolocation.getCurrentPosition 如何返回值?【英文标题】:How geolocation.getCurrentPosition return value? 【发布时间】:2017-11-29 03:27:38 【问题描述】:我正在使用 getCurrentPosition 来获取当地的纬度和经度。我知道这个函数是异步的,只是想知道如何返回其他函数可以访问的经纬度值?
function getGeo()
navigator.geolocation.getCurrentPosition(getCurrentLoc)
function getCurrentLoc(data)
var lat,lon;
lat=data.coords.latitude;
lon=data.coords.longitude;
getLocalWeather(lat,lon)
initMap(lat,lon)
【问题讨论】:
【参考方案1】:我建议你把它包装在一个承诺中:
function getPosition()
// Simple wrapper
return new Promise((res, rej) =>
navigator.geolocation.getCurrentPosition(res, rej);
);
async function main()
var position = await getPosition(); // wait for getPosition to complete
console.log(position);
main();
https://jsfiddle.net/DerekL/zr8L57sL/
ES6 版本:
function getPosition()
// Simple wrapper
return new Promise((res, rej) =>
navigator.geolocation.getCurrentPosition(res, rej);
);
function main()
getPosition().then(console.log); // wait for getPosition to complete
main();
https://jsfiddle.net/DerekL/90129LoL/
【讨论】:
简单干净!谢谢!! 确实很棒! 'return new Promise' 方法是在函数(在本例中为 geolocation.getCurrentPosition)中处理回调的好方法,其中正常 .then 处理不足以上是关于geolocation.getCurrentPosition 如何返回值?的主要内容,如果未能解决你的问题,请参考以下文章