我应该如何在node.js中强制同步?

时间:2012-01-15 09:00:30

标签: node.js asynchronous

我知道异步性是node.js的一半,它真的很棒,效率很高。然而,在某些情况下,这种编程模式只是过度和困难。例如,如果你想编写一个脚本来获取一些用户输入并使用它来创建一个MySQL行并保存它(我刚刚这样做了)。为程序的每一个小步骤创建一个单独的函数然后让它们连续相互调用真的很烦人。

那么应该如何处理这种情况呢?我尝试了step,但它不适用于coffee-script,因为它需要以经典方式声明函数(function foo() {/* Bar */})。 Coffee脚本改为创建匿名函数并将它们分配给局部变量(var foo = function() {/* Bar */}

我认为混合一个方法让进程等待回调运行会更简单。抛开异步性的争论,我将如何做到这一点?

2 个答案:

答案 0 :(得分:2)

尝试https://github.com/caolan/async

http://search.npmjs.org/上的“最依赖”软件包列表提供了有关受欢迎的库如何在节点社区中的见解。 async在第7位(取决于207个包)......

underscore    448
coffee-script 341
request       279
express       268
optimist      228
connect       207
async         207
colors        199
uglify-js     146
socket.io     140
redis         128
jade          117
jsdom         102
commander     101
mime           96

避免使用CoffeeScript“无效”的库;他们很麻烦。

答案 1 :(得分:0)

这取决于你在做什么,但Node.js中的几个核心方法都有同步版本,比如readFileSync

如果您正在处理没有同步版本的方法,您应该查看步骤的替代方法,例如async.js