vue-resource 如何return获取的值?

发布于 2022-09-07 22:56:23 字数 906 浏览 34 评论 0

各位大佬,请教一个问题。我在做一个工作台的项目,要求所有的数据请求都放到一个js文件里面做管理。我现在执行这里的请求数据方法,后无法获取到return的值。请帮忙看看怎么回事。谢谢啦!

import Vue from 'vue'
import VueResource from "vue-resource"
Vue.use(VueResource);
import store from "@/vuex.js";
var datap={
    get:{
        header(){
            var url="static/data/header.json"
            Vue.http.get(url).then((response)=>{
                 var data=JSON.parse(response.bodyText);
                 store.state.homeNav=data.nav;
                store.state.headerUserInfo=data.userInfo;
                store.state.headerMessage=data.message;
                **return data;**        //这里无效!        
            },error=>{
                //console.log(err);
                //return error.json();
            }).then(result => {
                //console.log(result);
            })
        }
    },
    post:{
        
    }    
}
export {datap};

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

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

发布评论

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

评论(1

↘人皮目录ツ 2022-09-14 22:56:23

你这个方法是没有回调的,只有 then 去获取返回的值:

var test=Vue.http.get(url).then((response)=>{
    ----------
    //return data;       //这里不要写return数据
    return Promise.resolve(data) // 利用Promise返回
},error=>{
    //console.log(err);
    //return error.json();
}).then(result => {
    //这里获取的result其实就是上面Promise.resolve(data)返回的数据,在这里拿到
    //console.log(result);
})

从这里可以看出你对then的链式写法还不太熟悉,推荐你看看ES6新语法Promise,尽量少用原来的回调地狱

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