今天在Node编程的第一天。我整天都相处得很好,但有一些奇怪的东西。我可能不理解节点的异步性或什么。Node.js代码执行顺序
我有一个执行shell命令的功能:
function puts(error, stdout, stderr) { sys.puts(stdout); }
然后我执行某些命令:
exec("foo", puts);
myarr.keys("mykey", function (err, replies) {
replies.forEach(function (reply, i) {
exec("bar");
});
});
exec("fuzz", puts);
exec("buzz", puts);
,这样是为了执行的最后两个东西是fuzz
和然后buzz
。但是,似乎fuzz
和buzz
发生在循环中的某个随机点,并且bar
是最后(有时)打印的东西。 myarr
是我通过连接到Redis
数据库构建的数组。
我是否必须强制Node
同步执行循环?我在代码中使用Redis
客户端..可能会导致问题吗?有任何想法吗?非常感谢 :)。
谢谢 - 很好抓到:)。 – ale 2012-03-29 19:12:00
刚刚去过很多次,我自己:)快乐节点黑客入侵。 – MattJ 2012-03-29 19:53:39