如何显示从数组对象列表
我在node.js
新。
我发一个返回对象的数组的函数。
当我尝试在控制台中显示,它会显示消息Undefined
。
下面是函数:
async function allBucketKeys(s3, bucket) {
const params = {
Bucket: bucket,
};
var keys = [];
for (;;) {
var data = await s3.listObjects(params).promise();
data.Contents.forEach((elem) => {
keys = keys.concat(elem.Key);
});
if (!data.IsTruncated) {
break;
}
params.Marker = data.NextMarker;
}
console.log(keys);
return keys;
}
var s3 = new AWS.S3()
array = allBucketKeys(s3, "mymplifyroject-20190123180140-deployment").keys;
console.log(array);
回答如下:
你回来从你的异步功能的承诺,所以你必须等待它或致电.then
在它之前,你可以访问该值。
async function allBucketKeys(s3, bucket) {
const params = {
Bucket: bucket
};
var keys = [];
for (;;) {
var data = await s3.listObjects(params).promise();
data.Contents.forEach(elem => {
// You might want to use keys.push(elem.Key) here, but if elem.Key
// is an array it would have a different behavior
keys = keys.concat(elem.Key);
});
if (!data.IsTruncated) {
break;
}
params.Marker = data.NextMarker;
}
console.log(keys);
return keys;
}
var s3 = new AWS.S3();
allBucketKeys(s3, "mymplifyroject-20190123180140-deployment").then(keys => {
console.log(keys);
});