2017-02-02 5 views
0

Kürzlich versuche ich, eine RESTful API mithilfe von Vuex und Vue-Ressource zu implementieren. Aber wenn ich die Vuex-Aktion verwende, um den Server-API aufzurufen, habe ich das folgende Problem.So verwenden Sie Versprechen in VUEX-Aktionen

Mein Code in Aktion sieht wie folgt aus:

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 
    } 
} 

Mein Code in den api.js sieht wie folgt aus

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)); 
    }, 
} 

ich die Antwort der api.js in Ordnung ist. Aber die Antwort der Aktion ist nicht definiert. Es wäre schön, wenn jemand helfen könnte?

Antwort

1

Ist es noch undefiniert, wenn Sie das Bit "console.log" in der API-Datei entfernen? Das ist das einzige, was ich sehen kann, dass es undefiniert sein würde.