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

我知道asynchronous性是node.js的一半,它真的很棒,很有效率。 然而在某些情况下,这种编程模式只是矫枉过正而且很困难。 例如,如果你想编写一个脚本,需要一些用户input,并使用它来创build一个MySQL行并保存它(我刚刚这样做)。 真的很烦人,必须为程序的每一个小步骤创build一个单独的函数,然后让它们全部相互调用。

那么应该如何处理这种情况呢? 我尝试了一步 ,但它不会与咖啡脚本工作,因为它需要函数以经典的方式( function foo() {/* Bar */} )声明。 咖啡脚本改为创build匿名函数并将它们分配给局部variables( var foo = function() {/* Bar */}

我想混合一个方法让stream程等待callback运行会更简单。 抛开asynchronous性的争论,我将如何去做这件事?

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

http://search.npmjs.org/上“最依赖于”软件包的列表提供了有关广受欢迎的库如何在节点社区中的见解。 asynchronous在第七位(依靠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“不工作”的库; 他们很麻烦。

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

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