Vue方法mixins

时间:2017-05-23 04:06:32

标签: javascript vue.js components frontend mixins

我的mixins文件中有方法getNames,它返回名称。

import { default as config } from '../config';
var methods = {
    methods: {
        getNames() {
            return axios.get(API + API.NAMES)
            .then( (response) => {
                if( response.status == 200 && typeof(response.data) == 'object' ) {
                    return response.data;
                }
            });
        }
    }
};

export default methods;

从我的单个模板文件中导入了mixins / methods文件。现在我的问题是如何从 getNames 方法获取返回对象数据。因为我试图

mixins: [
            filters,
            methods
],
mounted: function() {
            var a = this.getNames();
            console.log(a);
        }

getNames 方法只返回承诺

Promise {[[PromiseStatus]]: "pending", [[PromiseValue]]: undefined}
__proto__
:
Promise
[[PromiseStatus]]
:
"resolved"
[[PromiseValue]]
:
Object

1 个答案:

答案 0 :(得分:2)

axios.get()调用是异步的,它返回Promise。它不会返回传递给链式then方法的匿名函数的值。

要访问该值,您可以将then方法链接到返回的Promise,如下所示:

mounted: function() {
  this.getNames().then(a => { console.log(a) });
}