Vue 方法混合

Vue methods mixins

我的 mixins 文件中有方法 getNames,returns 名称。

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 方法中获取 return 对象数据。因为当我试图

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

getNames 方法只是 return 一个 Promise

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

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

为了访问该值,您可以将 then 方法链接到 returned Promise,如下所示:

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