vue中外部js文件请求数据如何再成功后把数据返给调用的组件
这个项目是我用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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在你需要这组数据的组件中, 引用你这个外部获取地理位置的 js 文件
接下来只需在你的生命周期里面调用这两个方法,就能获取到你return 出来的值
传一个回调函数进去
GetLocationPos这个函数直接调用能返回数据么?
wx.ready的回调函数函数没有定义return返回值,返回的应该是undefined吧