【发布时间】:2012-12-04 03:43:52
【问题描述】:
下面是我在 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);
});
【问题讨论】:
-
循环体中到底是什么?是否支持回调?
-
嗨 zerkms - 我刚刚更新了问题以添加有关该部分的详细信息。是的,它支持回调。
标签: javascript node.js asynchronous express