javascript - 当我尝试访问 javascript 对象的键时,它告诉我它是未定义的,即使它存在?
问题描述
所以以下是我正在调用的函数:
function* makeRequest(payload) {
return new Promise(function(resolve) {
request(payload,
function (error, response, body) {
console.log('body', body);
console.log('body.success', body.success);
resolve(body);
});
});
}
的输出console.log('body', body);
如下:
{
"success": true,
"challenge_ts": "2018-09-29T21:09:13Z",
"hostname": "localhost"
}
sobody
显然确实包含一个应该可以访问的对象。但是,当尝试访问body.success
我所得到的一切时undefined
......关于为什么会这样的任何想法?
解决方案
所以,事实证明,请求库中的响应主体可以是一个字符串。我能够使用@Bergi 向console.log(typeof body) 推荐的方法确认它是一个字符串。
所以解决方案是设置body = JSON.parse(body);
为了将字符串化对象解析回实际对象。
推荐阅读
- python - GradientTape 中的简单 Keras 网络:LookupError:没有为操作“IteratorGetNext”定义梯度(操作类型:IteratorGetNext)
- javascript - 打开 mailto 链接并关闭页面
- apache-kafka - Apache Beam KafkaIO 生产者将不同的消息路由到不同的主题
- mysql - 在 SQL 中合并两个不同查询的结果集
- loops - 如何在 Verilog 中停止无限循环
- python - 从两个列表(源列表和标签列表)有效地生成唯一的正负三元组
- c++ - 如何检查字符串是否正确以将其转换为 int?
- ios - UITextView 箭头键在 Mac Catalyst 上的 UICollectionViewCell 内时不起作用
- cassandra - Cassandra SSTable, Space Usage, Memtable size is 0 虽然表有一些数据
- jquery - (已解决)单击使用水豚在无头自动化上调用 ajax 函数的元素时无法下载文件