【发布时间】:2020-08-02 02:53:55
【问题描述】:
import axios from 'axios';
const URL = 'http://localhost:5000/api/posts/';
class PostService {
static getPosts() {
return new Promise( (resolve, reject) => {
try {
const res = axios.get(URL);
const data = res.data;
resolve(
data.map(post => ({
...post,
createdAt: new Date(post.createdAt)
}))
)
}
catch (e) {
reject(e);
}
});
}
运行时出现“TypeError: Cannot read property 'map' of undefined”的错误。
原来变量data 为空。
但是,当我在浏览器中访问 URL 时,数据完美显示如下:
screenshot of data
谁能告诉我为什么? 谢谢~
【问题讨论】:
-
我不确定,但您应该等待
axios.get与async axios.get一起解决。也许您必须在getPosts前加上await getPosts。否则代码看起来不错,更多阅读:javascript.info/async-await -
致 Marc:你是对的,这就是问题所在。我应该等待 axios.get。谢谢~但是我不能在
getPosts前加上await,这是一个语法错误......也许Abraham Labkovsky的方法是解决它的唯一方法?
标签: javascript vue.js axios