Я бы добавил, что с точки зрения удобства сопровождения, я считаю, что типичный стиль глубоко вложенных колбэков с использованием замыканий является единственным серьезным препятствием для понимания программ Node, а также является совершенно ненужным.
Для каждого:
a.doSomething(val, function(err,result){
b.doSomethingElse(result,function(err,res){
...
});
});
Всегда есть:
a.doSomething(val, onDoSomething);
function onDoSomething(err,res) {
...
}
Мое эмпирическое правило таково: для любых целей требуется новая функция обратного вызова без замыканиятри уровня вложенности.
(Node.js действительно нуждается в руководстве по стилю.)