将JavaScript地理位置分配给变量-范围问题?

时间:2019-03-09 22:53:21

标签: reactjs asynchronous geolocation es6-promise

很抱歉,这是重复的,我读过类似的文章,但无法解决这个问题,所以希望有人可以指出正确的方向。

我正在尝试使用地理位置API将用户的纬度,经度和时间戳记分配给全局变量(坐标对象)。我定义了函数,并且能够从结果调用中从函数内部控制台注销结果,但是不能将其分配给变量(返回未定义)。

在util文件中:

const getLocation = () => {
    var options = {
        enableHighAccuracy: true,
        timeout: 5000,
        maximumAge: 0
    };

    function success(pos) {
        const coords = {
            lat: pos.coords.latitude,
            long: pos.coords.longitude,
            time: pos.timestamp
        }
        return coords;
    }

    function error(err) {
        console.warn(`ERROR(${err.code}): ${err.message}`);
    }
    if ("geolocation" in navigator) {
        return (navigator.geolocation.getCurrentPosition(success, error, 
    options));
    } else {
        return console.log('geolocation must be enabled')
    }};

export default getLocation;

返回App.js:

import React, { Component } from 'react';
import Header from './components/Header';
import Footer from './components/Footer';
import Weather from './components/Weather';
import getLocation from './services/getLocation';
//import getWeather from './services/getWeather';

class App extends Component {
  render() {
    return (
      <div>
        <Header />
        <Weather />
        <Footer />
      </div>
    );
  }
}

console.log(getLocation())

export default App;

我怀疑这是一个范围界定的问题,但似乎无法解决这个问题。如果有人可以提供建议,那就太好了,谢谢。

0 个答案:

没有答案