Me gustaría que main() devuelva los datos en lugar de solo registrarlos en la consola como se muestra a continuación. ¿Cómo lo hago?
async function main() { // Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); // Call S3 to list the buckets s3.listBuckets(function (err, data) { if (err) { console.log("Error", err); } else { console.log(data); } }); } main();Intente esperar la función listBuckets .
Cambio
s3.listBuckets(function (err, data) { if (err) { console.log("Error", err); } else { console.log(data); } });a
return await s3.listBuckets(); Si eso no funciona, siempre puede construir una Promise manual y resolverla con los datos.
async function main() { // Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create S3 service object s3 = new AWS.S3({ apiVersion: "2006-03-01" }); return await new Promise((resolve, reject) => { // Call S3 to list the buckets s3.listBuckets(function (err, data) { if (err) { reject(err); } else { resolve(data); } }); }); } main();