首页 > 解决方案 > HTTP 请求后对象属性返回未定义

问题描述

我有以下代码,它试图获取包含一个对象的本地 JSON 文件,并将其返回给一个变量dataObj

const getRequest = async (url) => {
    try {
        const response = await fetch(url);
        const data = await response.json();
        return data;
    } catch(error) {
        console.log(error);
    }
}
let dataObj = getRequest('http://localhost:5500/testJson.json');
console.log(dataObj);

我的 JSON 文件如下所示:

[
    {
        "id": 1,
        "name": "Kenny",
        "upcoming_events": [
             {}
         ]
    }
]

我可以将响应记录到控制台没有问题,但是每当我尝试访问属性时,dataObj我都会返回“未定义”。

这是请求实际返回的控制台日志的片段:

控制台日志片段

我有一种感觉,它返回的是一个承诺,而不是 JSON 文件中记录的实际对象,对吗?但是,我已经进行了相当多的谷歌搜索,但找不到具体哪里出错了。我仍然是一个非常业余的人,我希望有经验的人可以帮助我。

标签: jsonhttpgetrequest

解决方案


改变这个:

const dataObj = getRequest('http://localhost:5500/testJson.json');
console.log(dataObj);

至:

getRequest('http://localhost:5500/testJson.json')
.then( dataObj => console.log(dataObj));

推荐阅读