也许这是一个愚蠢的问题,但当我从“外部”函数调用api时,它总是返回undefined,例如:
actions.js
import axios from 'axios'
export function getProducts() {
axios.get('http://localhost:8000/api/products').then((response) => {
return response;
});
}然后在组件中:
mounted() {
this.products = getProducts();
console.log(this.products);
}返回未定义的
当然,当我从组件发出请求时,它会返回结果
mounted() {
axios.get('http://localhost:8000/api/products').then((response) => {
this.products = response;
console.log(this.products);
});
}为什么会发生这种情况?我如何解决这个问题?
谢谢
发布于 2018-03-01 22:55:09
您将在axios.get调用的then回调中返回response值。但是,您的getProducts函数不会返回任何内容。
只需返回axios.get调用:
export function getProducts() {
return axios.get('http://localhost:8000/api/products');
}然后,getProducts的结果将是axios.get()返回的Promise。因此,您可以在getProducts的结果上添加一个then回调,并以这种方式设置您的this.products:
mounted() {
getProducts().then(products => this.products = products);
}https://stackoverflow.com/questions/49052266
复制相似问题