javascript - 读取包含在 promise 中的对象的属性的正确方法是什么? (获取类型错误)

标签 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;
}

据我了解,这应该返回一个 promise 。在调用函数中,我将其分配给一个变量,然后将其他变量分配给它的属性,并用它们构建一个对象。

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

这似乎工作成功,使用正确的字段构建对象。然而,与此同时,每次我这样做时它都会抛出错误,阅读

未捕获( promise 中)类型错误:无法读取未定义的属性“propertyOfInner”

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

最佳答案

未捕获( promise 中)类型错误:无法读取未定义的属性“propertyOfInner”

上述错误意味着您无法从未定义的位置访问“propertyOfInner”,这意味着您的“内部”变量在某些时候未定义。

我建议您按如下方式访问属性

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

关于javascript - 读取包含在 promise 中的对象的属性的正确方法是什么? (获取类型错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55733841/

相关文章:

c# - 发布可观察对象时异步创建挂起

javascript - 链式排队回调结果

javascript - 排除 URL 前面的 URL 方案

javascript - 并行执行函数并等待其完成

node.js - puppeteer如何获取元素tagName

json - Node.js Restify - 简单服务

javascript - NodeJS - 使用返回的 Promise 更新对象

javascript - 使用 Marionette.CompositeView 进行单元测试

javascript - 单击时可折叠的 div 高度问题

node.js - NodeJS SSL 从哪里获取 .key 文件