callback函数数组

我在做什么:

function1(function(){ function2(function(){ function3(function(){ function4(); } } } 

有没有更简单的方法来做到这一点?

 miracleFunction([function1,function2,function3,function4]); miracleFunction = function(array){ ??? } 

npm上使用async包 ,你可以使用这样的数组,例如:

 var async = require('async'); async.series([function1, function2, function3, function4]); 

除了简单地运行几个asynchronous函数之外,它还具有简化并行运行asynchronous操作的function,使用asynchronous函数映射数组以及其他各种有用的组合器。

看看承诺,这也可以让你很好地处理错误。

Q特别好,只支持你的用例。 直接链接: https : //github.com/kriskowal/q#sequences

不要深入callback,而要把它们分解成易于理解的函数:

 function GetUserData(id, callback) { // db queries, etc connection.query('...get user info...', function (err, results) { connection.query('...get user related whatnot...', function (err, results) { callback (); }); }); } connection.query('...load page data...', function (err, results) { GetUserData( function () { res.render('page.ejs', ... ); }); }); 

你甚至可以将更多使用的function分解成一个模块,这样你的代码就不会太杂乱。 asynchronous包看起来不错,但对我来说,我个人喜欢看stream量。 总是达到程序员的偏好。