Javascript 为什么axios.get在浏览器中访问URL时会变为null?
运行时,出现“TypeError:无法读取未定义的属性“map”的错误。 结果是变量Javascript 为什么axios.get在浏览器中访问URL时会变为null?,javascript,vue.js,axios,Javascript,Vue.js,Axios,运行时,出现“TypeError:无法读取未定义的属性“map”的错误。 结果是变量data为空。 但是,当我在brower中访问URL时,数据会完美地显示如下: 有人能告诉我为什么吗? Thx~您没有在引用之前等待.get函数调用解析。 在异步函数中,您可以等待它,但在承诺中,您必须将异步任务放在.then()中 编辑:也许这还不清楚 尝试: 我不确定,但您应该等待axios.get使用async-axios.get解决问题。也许您必须在getPosts前面加上await-getPosts。
data
为空。
但是,当我在brower中访问URL时,数据会完美地显示如下:
有人能告诉我为什么吗?
Thx~您没有在引用之前等待.get函数调用解析。 在异步函数中,您可以等待它,但在承诺中,您必须将异步任务放在.then()中 编辑:也许这还不清楚 尝试:
我不确定,但您应该等待
axios.get
使用async-axios.get
解决问题。也许您必须在getPosts
前面加上await-getPosts
。否则代码看起来不错,更值得一读:对马克:你是对的,那就是出错的地方。我应该等axios的。谢谢~但是我不能用wait
作为getPosts
的前缀,这是一个语法错误。。。也许亚伯拉罕·拉博科夫斯基的方法是解决这个问题的唯一方法?
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);
}
});
}
import axios from 'axios';
const URL = 'http://localhost:5000/api/posts/';
class PostService {
static getPosts() {
return new Promise( (resolve, reject) => {
axios.get(URL)
.then(res => resolve(res.data.map(post => ({
...post,
createdAt: new Date(post.createdAt)
}))))
.catch(reject)
});
}