Pretty straightforward here, but it seems I'm missing some nuance. I'm creating an array of promises, and using Q.all()
to ensure that all inserts into a db are finished before shipping a response back to the client. However, it's never being called. How can I get the response to be sent?
var promises = [];
for(var i=0; i < rows.length; i++){
// Insert new row here
var def = Q.defer();
promises.push(def.promise);
var query = connection.query(createQuery(rows[i]), function(err, rows) {
if(err) {
console.log(err);
return;
}
});
query.on('end', function(){
console.log(def);
def.resolve();
});
}
Q.all(promises).then(function() {
res.json({success:true, rows: rows.length});
});