Node.js如果我有一些callback函数,这是最有效的方式来堆叠它们

使用asynchronous瀑布或使用.then(函数)堆叠在一起,这几乎是相同的事情。 现在我已经遇到了这两种写作方式。

你可以使用https://github.com/tj/co 。 它使用promise来更好地编写非阻塞代码。 例如。

co(function* () { var result = yield Promise.resolve(true); return result; }).then(function (value) { console.log(value); }, function (err) { console.error(err.stack); }); 

可以使用async.waterfall(只有在需要执行的函数的顺序以及一个函数的结果/输出通过下一个函数时才使用它),否则我会使用async.parallel或async.series

最高效..在哪方面? 易于维护? 快速?

以我的经验来看,把这些东西放在速度上是不值得的。 即使其中一个比另一个速度快100%,任何速度的增加都很可能会比networking延迟小几个数量级。

select你认为最容易理解/维护的那个。 如果代码运行速度太慢,则通过基准testing来找出最慢的部分并改进它们。