下面是来自 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 });
};
如果我运行这段代码,由于 javascript 的异步特性,最后一行在循环被完全处理之前被执行。因此我的网页没有结果。我如何构建这种方式,以便在查询完成后加载页面?
更新
在循环内部,我有如下数据库代码( Redis ) -
client.hgetall("game:" +i, function(err, reply) {
results.push(reply.name);
});