读取包装在promise中的对象属性的正确方法是什么? (获取TypeError)

时间:2019-04-17 18:24:13

标签: javascript node.js asynchronous async-await es6-promise

我有一个异步函数,该函数从API中获取json,然后在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

即使它显然正在成功读取该属性。因此,尽管在诺言解决时正确填充了字段,但显然我在做错事。读取包含在promise中的对象属性的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

未捕获(承诺)TypeError:无法读取未定义的属性'propertyOfInner'

以上错误意味着您无法从未定义的位置访问'propertyOfInner',这意味着在某种程度上您的'inner'变量未定义。

我建议您按以下方式访问媒体资源

如果(内部){让gamedescription = inner.propertyOfInner;}