javascript - 读取包装在承诺中的对象的属性的正确方法是什么?(获取类型错误)
问题描述
我有一个异步函数,它从 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
即使它显然正在成功读取该属性。因此,虽然在承诺解决时正确填充了字段,但显然我做错了什么。读取包装在承诺中的对象的属性的正确方法是什么?
解决方案
未捕获(承诺中)类型错误:无法读取未定义的属性“propertyOfInner”
上述错误意味着您无法从未定义访问“propertyOfInner”,这意味着您的“内部”变量在某些时候未定义。
我建议您按以下方式访问属性
if (inner) {let gamedescription = inner.propertyOfInner;}
推荐阅读
- algorithm - 用图论算法解决房屋绘图问题
- spring-webflux - 使用 r2DBC MSSQL 库,如果使用 'IN' 子句运行本机查询,则会导致异常
- javascript - 使用 Javascript 更改 HTML 的内部元素以呈现 Django For Loop
- python - 将带有缩进的字符串转换为括号
- apache-kafka - 文件阅读器配置不适用于 Fume
- google-cloud-platform - 批处理或流处理的数据流部分中的 FlexRS 类型在哪里?
- c - 为什么 Valgrind 会给我这么多错误?
- python - 如何用矩阵制作一个大的三对角矩阵?
- r - 不为因子列运行的情况
- ldap - 在 Zeppelin 上使用 Shiro 进行身份验证:主要参数不能为空