Vuejs2 如何在vuex操作中使用承诺

Vuejs2 如何在vuex操作中使用承诺,vuejs2,vue-resource,vuex,Vuejs2,Vue Resource,Vuex,最近,我尝试使用vuex和vue资源实现RESTful api。但是,当我使用vuex操作调用服务器api时,我遇到了以下问题 我的实际代码如下所示: import api from '../api/api.js' const actions = { getData (context, userId) { api.get('https://jsonplaceholder.typicode.com/posts/1') .then((response) => console.

最近,我尝试使用vuex和vue资源实现RESTful api。但是,当我使用vuex操作调用服务器api时,我遇到了以下问题

我的实际代码如下所示:

import api from '../api/api.js'

const actions = {
getData (context, userId) {
  api.get('https://jsonplaceholder.typicode.com/posts/1')
      .then((response) => console.log(response));//undefine
  }
}
我在api.js中的代码如下所示

import Vue from 'vue';

export default {
get(url, request) {
     return Vue.http.get(url, request)
         .then((response) => {
           Promise.resolve(response.body);
           console.log(response.body);//ok
         })
         .catch((error) => Promise.reject(error));
    },
}

I api.js的响应很好。但行动的反应是不明确的。如果有人能帮忙,那就太好了

如果将箭头函数用花括号括起来,则现在需要手动
返回
一些您没有执行的操作

此外,将答案包装在
Promise.resolve
内部回调到
,然后
是没有意义的。只需返回
response.body

最后,
.catch((错误)=>Promise.reject(错误))是没有意义的。你最终得到了与你已经拥有的完全相同的东西,你完全删除了整个
catch…
代码行,因为你只是用你已经被拒绝的错误来拒绝

换句话说,返工为:

从“Vue”导入Vue;
导出默认值{
获取(url、请求){
返回Vue.http.get(url,请求)
。然后((响应)=>{
返回响应.body;
});
},
}

如果将箭头函数用花括号括起来,现在需要手动
返回一些您没有执行的操作

此外,将答案包装在
Promise.resolve
内部回调到
,然后
是没有意义的。只需返回
response.body

最后,
.catch((错误)=>Promise.reject(错误))是没有意义的。你最终得到了与你已经拥有的完全相同的东西,你完全删除了整个
catch…
代码行,因为你只是用你已经被拒绝的错误来拒绝

换句话说,返工为:

从“Vue”导入Vue;
导出默认值{
获取(url、请求){
返回Vue.http.get(url,请求)
。然后((响应)=>{
返回响应.body;
});
},
}

该操作的思想是,它应该通过提交更新状态中的数据。。然后使用Vue组件中的存储数据。。操作应为无效返回


您还应该通过store.dispatch('getData',payload)之类的东西调用该操作。。但由于它返回一个承诺,您可以在store.dispatch上执行wait of then()逻辑。。。(实际上应该这样做)

该操作的思想是,它应该通过提交更新状态中的数据。。然后使用Vue组件中的存储数据。。操作应为无效返回

您还应该通过store.dispatch('getData',payload)之类的东西调用该操作。。但由于它返回一个承诺,您可以在store.dispatch上执行wait of then()逻辑。。。(事实上,我们应该这样做)