基于recursion目录的callback – Node.js

我有一个recursion函数,它执行一个树进程,其中每个调用可以多次调用自己,我没有任何方法知道它有多深或多宽。 整个过程完成后,如何运行callback?

我正在考虑让某种对象通过计算,但还没有完全破解它,我想知道是否有一个已知的最好/更好的方法来做到这一点。

你可以做这样的事情:

function recurseTree(arg, callback) { var recurse = function(a) { if (someCondition) { recurse(a); } }; recurse(arg); callback(); } 

所有的实际recursion逻辑都将进入recurse函数,并且只有在所有recursion完成后才会调用callback函数。

编辑:

这是一个简单的实现

 function recursiveAlert(x, callback) { var recurse = function(y) { alert(y); if (y < 3) { recurse(y + 1); } } recurse(x); callback(); } recursiveAlert(0, function() { alert('done'); }); 

我需要做的是在调用callback之前计算每棵树中的path数量,例如:

 myFunction: function(tree) { var count = 0; finishCallback = function() { if (--count === 0){ callback(); }; }; recursion = function(subTree) { count = tree.paths.length; _.each(subTree.path, function(route) { count += subFolder.fileRefs.length; recursion(route, function() { finishCallback(); }); }); }; recursion(tree); } 

也许计数不应该在myFunction中,但recursion应该有自己的计数,但是这个工作。 (我没有testing这个例子)