浏览 JS 对象
navigate through JS object
我正在尝试浏览Javascript对象,但每次出现错误时:类型错误:无法读取未定义的属性"属性"
这是我的代码:
var attributes = [];
var params = {
QueueUrl: 'AMAZON_QUEUE', /* required */
AttributeNames: [
'ApproximateNumberOfMessages',
/* more items */
]
};
setInterval(queueAttributes, 2000)
function queueAttributes () {
sqs.getQueueAttributes(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log (data);
attributes.push(data); // successful response
setTimeout(queueChecker, 1000);
});
}
function queueChecker (attributes) {
if (attributes.Attributes.ApproximateNumberOfMessages == 0) {
console.log ('queueEmpty');
}
else
{
console.log (attributes.Attributes.ApproximateNumberOfMessages + 'messages in queue');
};
}
有人知道我应该如何调用属性变量中包含的 ApproxNumberOfMessages 值吗?
我从 SQS 得到的响应以及属性变量的内容如下:
{ ResponseMetadata: { RequestId: '6c43d9d6-281d-5bfa-b7f5-94e165b49662' },
Attributes: { ApproximateNumberOfMessages: '0' } }
谢谢。
您正在以数组的形式访问属性。
attributes.push(data);
继续在数组属性中添加元素。如果您希望以以下方式访问属性
attributes.Attributes.ApproximateNumberOfMessages
您需要将属性声明为对象:
var attributes = {
Attributes:{
ApproximateNumberOfMessages:0
}
}
然后在函数 queueAttributes() 中,您可以按如下方式填充属性对象...
function queueAttributes () {
sqs.getQueueAttributes(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log (data);
//attributes.push(data); // successful response
attributes.Attributes.ApproximateNumberOfMessages = data;
setTimeout(queueChecker, 1000);
});
}
假设数据要填充在属性中。属性.近似消息数。
希望对您有所帮助!
相关文章:
- 使用JS将数组转换为json对象
- 查看JS对象的所有键,甚至是getter定义的键
- 在URL中传递JS对象
- 为什么要包装每一个原型“;类“;JS中具有匿名函数的对象
- 当属性不一致时,如何根据属性对JS对象列表进行排序
- Node.js中的JavaScript原型对象效率
- 如何使用自定义功能覆盖时间轴对象.js时间轴对象的_repaintMinorText
- 如何在第三轴上旋转 3D 对象.js
- 三个中是否有容器类型对象.js来转换一组子对象
- 从 JSON 对象 - JS 周围删除双引号
- 删除对象JS中的节点
- 在对象数组中搜索非空对象JS
- 按未定义的值从数组中选择对象?JS
- 递归循环,直到我们'重新处理对象[JS]
- 向窗口对象-js添加新属性时得到通知
- 如何包含对象/关联数组到对象(js)
- 加载依赖于页面的面向对象JS属性的最好方法是什么?
- 合并新的数组对象到现有的对象js
- 获取带有下划线的数组中的对象.js
- 在带有下划线的嵌套集合中查找对象.js