Así que estoy tratando de ejecutar múltiples consultas, todo mientras creo filas en una hoja de Excel, y luego, después de todo eso, realmente escribo en un archivo de Excel. El problema con el que sigo tropezando es que termino escribiendo en el archivo de Excel antes de terminar. mis consultas y las filas han sido creadas. Aquí está mi código:
var writeRows = function(){ // setting up of excel file Child.find(function(err,children){ children.forEach(function(item, index){ User.findOne({_id: item.get_gaurdian()}, function(err, parent){ console.log(item.firstname); sheet.addRow({ firstname: item.firstname, lastname: item.lastname, birthday: item.birthday, address: item.address, parent_name: parent.full_name(), // more fields... }); }); }); }); }Y luego en mi controlador llamo:
writeRows().then(function(){ d = new Date().toDateString().split(' ').join('_'); filename = './public/spreadsheets/registration_1'+d+'.xlsx'; workbook.xlsx.writeFile(filename) .then(function() { console.log("wrote to a file"); res.send('finished'); }); });¿Cómo puedo esperar a que se realicen las consultas y se agreguen las filas antes de escribir en el archivo?