也许是一个愚蠢的问题,但是, 当我从外面打电话给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);
}
返回undefined
当然,当我从组件发出请求时,它返回结果
mounted() {
axios.get('http://localhost:8000/api/products').then((response) => {
this.products = response;
console.log(this.products);
});
}
为什么会发生这种情况?如何解决这个问题?
由于
答案 0 :(得分:1)
您将在response
来电的then
回调中返回axios.get
值。但是,您的getProducts
函数不会返回任何内容。
只需返回axios.get
来电:
export function getProducts() {
return axios.get('http://localhost:8000/api/products');
}
然后,getProducts
的结果将是axios.get()
返回的Promise
。因此,您可以对then
的结果添加getProducts
回调,并以此方式设置this.products
:
mounted() {
getProducts().then(products => this.products = products);
}