Свойства объекта возвращают неопределенный после HTTP-запроса - PullRequest
0 голосов
/ 23 января 2019

У меня есть следующий код, который пытается получить локальный файл 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, я получаю «undefined».

Это фрагмент журнала консоли для того, что фактически возвращается запросом:

Console log Snippet

У меня такое ощущение, чтоэто возвращает обещание, а не фактический объект, отмеченный в файле JSON, верно?Тем не менее, я довольно много погуглил и не могу точно определить, где я ошибаюсь.Я все еще очень большой любитель, и я надеюсь, что кто-то более опытный может мне помочь.

1 Ответ

0 голосов
/ 23 января 2019

Измените это:

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

на:

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