Как правильно прочитать свойство объекта, заключенного в обещание?(Получение TypeError) - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть асинхронная функция, которая выбирает json из API и возвращает его в Node.js. По существу,

export async function getThing(URL){
  let res = await fetch(URL);
  let data = await res.json();
  return data;
}

Это, насколько я понимаю, должно вернуть обещание. Внутри вызывающей функции я назначаю это переменной, затем назначаю другие переменные ее свойствам и строю из них объект.

async function dostuff(){
  let inner = await exportedfile.getThing(URL);
  let gamedescription = inner.propertyOfInner;
}

Кажется, это работает успешно, объекты строятся с правильными полями. Однако в то же время он выдает ошибки каждый раз, когда я делаю это, читая

Uncaught (in promise) TypeError: Cannot read property 'propertyOfInner' of undefined

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

1 Ответ

1 голос
/ 17 апреля 2019

Uncaught (в обещании) TypeError: Невозможно прочитать свойство 'propertyOfInner' из undefined

Выше ошибка означает, что вы не можете получить доступ к 'propertyOfInner' из undefined, это означает, что каким-то образом ваша 'внутренняя' переменная не определена в какой-то момент.

Я предлагаю вам получить доступ к свойству следующим образом

if (inner) {let gamedescription = inner.propertyOfInner;}

...