作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个名为 yourArray 的数组。 var yourArray = [];
当我从 s3 获取带有 listObjects 的对象名称时,我想将此对象名称推送到数组中。
var params ={
Bucket: 'exBucket',
Prefix: 'somePrefix'
};
s3.listObjects(params, function(Err, Data){
if(!Err){
for (var i = 0; i < Data.Contents.length; i++){
console.log('Listed: ', Data.Contents[i].Key);
yourArray.push(Data.Contents[i].Key);
}
};
});
在这里,console.log('Listed: ', Data.Contents[i].Key);
给了我所有的名字。但是 yourArray.push(Data.Contents[i].Key);
不会推送名称并且数组仍然是空的。哪里错了?
最佳答案
正如 Jaromanda X 所说,listObjects
是异步的,您的函数试图在对象完成之前将值放入数组中。
为了处理这样的 S3 对象,我建议使用 Bluebird promise
关于javascript - 如何将值从 listObjects 推送到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33148156/
我是一名优秀的程序员,十分优秀!