Below is a snapshot of my code from routes/index.js
exports.index = function(req, res){
var results=new Array();
for(var i=0; i<1000;i++){
//do database query or time intensive task here based on i
// add each result to the results array
}
res.render('index', { title: 'Home !' , results:results });
};
If I run this code , due to the asynchronous nature of javascript the last line gets executed before the loop gets completely processed . Hence my webpage doesnt have the results . How do I structure this such a way that the page gets loaded once the queries are completed ?
Updated
Inside the loop I have database code ( Redis ) like the below –
client.hgetall("game:" +i, function(err, reply) {
results.push(reply.name);
});
Of course, the above code doesn’t handle [1 or more] errors. You’d need to add logic that only responds (1) on the first error or (2) if no errors occur.