我是Node新手,并试图确保我为JSON驱动的Web应用程序使用了理智的设计。在Node.js中处理异步循环的最佳模式
我有一堆存储在Redis中的数据,并且正在通过节点检索它,当它们来自Redis时,将结果流出。下面是我在做什么一个很好的例子:
app.get("/facility", function(req, res) {
rc.keys("FACILITY*", function(err, replies) {
res.write("[");
replies.forEach(function (reply, i) {
rc.get(reply, function(err, reply) {
res.write(reply);
if (i == replies.length-1) {
res.write("]");
res.end();
}
else
res.write(",");
});
});
});
});
基本上我就要设置从Redis的键,然后要求每一个,流出来的结果为半手动创建JSON(串出来的Redis已经在JSON中)。现在,这很好地工作,但我不禁认为,我== respond.length-1有点不整齐?
我可以在Redis中用mget完成所有这些工作,但这并不是我试图获得它的重点;它是如何最好地处理forEach的异步循环,流式传输输出并正常关闭与res.end的连接,循环完成。
这是最好的方式,还是有更优雅的模式,我可以遵循?
深嵌套函数回调我会使用异步.js库。 – BRampersad 2011-12-20 17:45:12