vue中外部js文件请求数据如何再成功后把数据返给调用的组件

发布于 2022-09-06 05:39:20 字数 1330 浏览 19 评论 0

这个项目是我用vue写的项目用在微信网页中,现在我要请求微信的位置的api然后获得经纬度参数然后再请求后台接口获得数据,我写在每个组件中是没问题的,现在我想把这个方法提出来做个公共方法来用,可是我先方法可以调用也能请求到数据,但是我在调用方法的组件中拿不到数据,下面是代码,写在一个单独的js文件中

//地理位置定位
import {getLocationUrl} from 'common/config'
import {SaveLocalStorage,GetLocalStorage} from 'common/localStorage'
import {PasswordPost} from 'common/tool'
export function GetLocationPos(){
    let _this=this
    return wx.ready(function(){
            wx.getLocation({
            type: 'wgs84', // 默认为wgs84的gps坐标,如果要返回直接给openLocation用的火星坐标,可传入'gcj02'
            success: function (res) {
                 let data=JSON.stringify(res)
                 SaveLocalStorage('_User_Loaction_',data)
                 let str=res.latitude+','+res.longitude
                return SendLocationAjax(str)
            }
        })
     })
}
function SendLocationAjax(params){
            //获取详细的城市信息
        return vm.$http.post(getLocationUrl,PasswordPost({location:params})).then((res)=>{
            // console.log(res.data)
            let data=JSON.stringify(res.data.data)
            vm.$cookie.set('user_location_info',data,{ expires: '1h' })//存一个1小时的地理cookie
            console.log(JSON.parse(vm.$cookie.get('user_location_info')))
            return res.data
        })
}

问下该如何修改可以在组件中拿到数据

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

孤星 2022-09-13 05:39:20

在你需要这组数据的组件中, 引用你这个外部获取地理位置的 js 文件

import {GetLocationPos} from 'js 文件路径'
import {SendLocationAjax} from 'js 文件路径'

接下来只需在你的生命周期里面调用这两个方法,就能获取到你return 出来的值

戴着白色围巾的女孩 2022-09-13 05:39:20

传一个回调函数进去

沉默的熊 2022-09-13 05:39:20

GetLocationPos这个函数直接调用能返回数据么?
wx.ready的回调函数函数没有定义return返回值,返回的应该是undefined吧

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文