Javascript Vue,fetch返回空数组

Javascript Vue,fetch返回空数组,javascript,vue.js,fetch,vuex,Javascript,Vue.js,Fetch,Vuex,我正在vue cli项目中获取一些数据 我正在使用Vuex存储数据 除了我得到一个空数组,我已经签入了Postman,而且它工作得非常完美,这一切都成功地运行了 正如您在我的操作中所看到的,我在if语句中有commit,当前已被注释掉并移动。但是当在那里运行时,我得到了一个承诺返回。作为代码的当前版本,我得到一个空数组 我真的看不出我的错误是什么,所以我最好的办法是你们能看到我遗漏了什么 首先,我有我的行动: export default { async getProLanguages({ c

我正在vue cli项目中获取一些数据

我正在使用Vuex存储数据

除了我得到一个空数组,我已经签入了Postman,而且它工作得非常完美,这一切都成功地运行了

正如您在我的操作中所看到的,我在
if
语句中有commit,当前已被注释掉并移动。但是当在那里运行时,我得到了一个
承诺
返回。作为代码的当前版本,我得到一个空数组

我真的看不出我的错误是什么,所以我最好的办法是你们能看到我遗漏了什么

首先,我有我的行动:

export default {

async getProLanguages({ commit }) {
    commit(C.PROLANGAUGE_DATA_PENDING);
    try {
        const res = await fetch('https://dev-webapp-kimga5xexrm3o.azurewebsites.net/api/ProLang', {
            method: 'GET',
            mode: 'cors',
            headers: {
                'Content-Type': 'application/json',
                'Accept': 'application/json',
                'Authorization': 'Bearer xxx'
            }
        });
        if (res.status === 200) {
            console.log(res);
            // commit(C.PROLANGAUGE_DATA_SUCCESS, JSON.stringify(res.json()));
        }
        else {
            commit(C.PROLANGAUGE_DATA_NO_CONTENT);
        }
        console.log(res)
        return commit(C.PROLANGAUGE_DATA_SUCCESS, JSON.stringify(res.json()));
    }
    catch (e) {
        commit(C.PROLANGAUGE_DATA_FAILURE);
    }
}
我的基因突变:

 /**
 *  Indicates that programming language has succeded 
 * 
 * @param state 
 * @param  payload 
 */
[C.PROLANGAUGE_DATA_SUCCESS](state, payload) {
    state.programmingLanguages = { ...state.programmingLanguages, loading: false, error: false, noContent: false, items: payload }
},
我有我的默认状态,它被导入到
state.js

const getDefaultState = () => ({
  programmingLanguages: {
    loading: false,
    error: false,
    noContent: false,
    items: [
      {
        id: undefined,
        name: undefined
      }
    ]
  }
});
在路由之前,我用一个
调用我的操作

beforeRouteEnter(to, from, next) {
  store.dispatch('programmingLanguages/getProLanguages').then(() => {
    next();
  });
}
最后,在我的组件中,我从Vuex导入
mapState

computed: {
  ...mapState({
    prolangs: state => state.programmingLanguages.programmingLanguages.items
  })
}

我认为类似于
items=wait res.json()
,然后提交
items
可能是一种前进的方式(确保所有承诺都得到解决)。

应该是
commit(C.PROLANGAUGE\u DATA\u SUCCESS,res.json())?我实际上刚刚尝试过,它现在返回了一个承诺,不确定如何处理这个问题。我看到,您需要
const items=wait res.json()
then
commit(C.PROLANGAUGE\u DATA\u SUCCESS,items)有用提示:当呈现
内联代码格式时
,您只需要在标记中使用单个反标记。只有块才需要三个反勾号(代码围栏)。单个反勾号更易于编辑。