从导出的函数JS中的函数获取值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从导出的函数JS中的函数获取值相关的知识,希望对你有一定的参考价值。

今天,我正在使用javascript进行项目。我有一个导出的函数A,它位于我的location.js之后的另一个文件中。当我单击时,将获得用户的位置。

但是如何从导出函数中的函数获取值?

我需要函数中的坐标。

代码:

if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(
                function(position) {
                    lat = position.coords.latitude;
                    long = position.coords.longitude;
                    coordinates = {
                        latitude: lat,
                        longitude: long
                    };
                    console.log(JSON.stringify(coordinates));
                    return coordinates;
                }, {
                   (errorHandling)
                }};

有人可以帮我吗?

感谢前进!

答案

navigator.geolocation.getCurrentPosition是一个异步函数,它基于回调原理,而不是promise。

为了获得返回的值,您需要将其转换为基于promise的函数,或者将回调函数传递给它,当有可用数据时调用该回调函数,例如

const getLocation = (callback) => {
    ....

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(
            function myLocation(position) {
                lat = position.coords.latitude;
                long = position.coords.longitude;
                callback({
                    latitude: lat,
                    longitude: long
                }); // the callback method
            },
            function(error) {
                ...
            }
        );
    } 
    ...
};

module.exports = { getLocation };

现在您可以调用函数并以类似的状态设置坐标

import Button from './button.js';

import { getLocation } from './functions/getLocation.js';

class Card extends React.Component {
    state = {
       coordinates: {}
    }
    getLocationCoordinates = () => {
        getLocation((coordinates) => {
            this.setState({coordinates})
        })
    }
    render() {
        const { lat, lng } = this.state.coordinates;
        return (
            <div id={'location'} className={'card'}>
                    ...
                    <Button function={this.getLocationCoordinates} text={'Allow Location'} />
                    ...
            </div>
        );
    }
}

export default Card;

以上是关于从导出的函数JS中的函数获取值的主要内容,如果未能解决你的问题,请参考以下文章

使用 Vue.js 从函数中的 <ion-input> 获取值

从 C# 中的 C++ 代码中获取对象功能

从 React JS 中的输入字段获取值

从golang中的包中获取导出函数列表

JS如何获取值

从 ispc 导出的函数中按值返回结构?