使用async auto作为包装器

时间:2015-09-30 07:40:00

标签: node.js asynchronous

我的同步代码接近数千行。我想将它们分成一些组并将其放在async.auto中(一组是async.auto中的一个函数)。每个函数都有名称。我这样做是因为我想让其他人在将来轻松维护。代码分为组,因此易于理解。我想知道async.auto与不使用它时相比会导致性能下降

do some stuff;
do some stuff;
do some stuff;
...
do some stuff;

我想改为:

async.auto({
   do_A: function(cb){
      do some stuff;
      do some stuff;
   },
   do_B: ['do_A', function(cb, result){
      do some stuff with result;
      do some stuff with result;
   }]
}, function(err, result){

})

1 个答案:

答案 0 :(得分:0)

你绝对应该把它分开并将它作为单独的函数放入async.auto中,但是通常使用大块的同步代码,代码的不同部分之间会有很多耦合,而你却没有意识到。我的建议是非常小心地将其拆分,每次创建新组时进行测试,并在开始下一次更改之前将更改提交给SCM(例如git)。这样,当您发现问题时,您可以返回并找出引入问题的位置。

我不太了解性能影响会是什么,但我认为它会很小。您最好的选择(与任何性能问题一样)是在分析器中进行测试。除非您让它无序运行某些功能,否则您将无法获得任何性能好处。如果每个块都依赖于前一个块,那么它将全部按顺序运行。