Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么axios.get在浏览器中访问URL时会变为null?_Javascript_Vue.js_Axios - Fatal编程技术网

Javascript 为什么axios.get在浏览器中访问URL时会变为null?

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。

运行时,出现“TypeError:无法读取未定义的属性“map”的错误。 结果是变量
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)
    });
}