Здравствуйте, у меня есть эта проблема, всякий раз, когда я выполняю этот код, обратный вызов выполняется до того, как функция de main завершит выполнение. Я считаю, что это как-то связано с асин c функции
var leers3 = async function (next) {
var executed = [];
AWS.config.update({
region: '********',
accessKeyId: '*********',
secretAccessKey: '*********'
});
var s3 = new AWS.S3();
s3.listObjects({Bucket:'*******'}, function(err, data) {
if (err) {
console.log(fechaActual() + " Error: Error ejecutando cruce con S3.")
}else{
var files = [];
data.Contents.forEach(function(obj,index){
if(obj.Key.startsWith("*****") || obj.Key.startsWith("*****")){
files.push(obj.Key);
}
})
files.forEach((file) => {
var id_cajero = file.split('_')[1];
var params = {Bucket:'*****', Key: file};
var sql = "SELECT id_entidad FROM cajero WHERE id_cajero = '" + id_cajero + "';";
dbConnection.query(sql, async(err,result) => {
if(err) console.log(err);
else{
var fileExecutedData = await leerarchivos3(params, s3, id_cajero, result[0].id_entidad);
fileExecutedData.file = file;
executed.push(fileExecutedData);
//console.log(executed);
}
})
next(executed);
})
}
})
};
leers3((executed) => {
console.log(executed);
});