【发布时间】:2012-03-30 03:52:44
【问题描述】:
今天在 Node 编程的第一天。我一整天都相处得很好,但有些奇怪的事情。我可能不理解 Node 的异步性什么的。
我有一个执行 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 客户端.. 这些会导致问题吗?有任何想法吗?非常感谢:)。
【问题讨论】:
标签: javascript node.js redis