5 javascript reflection recursion node.js
我有一个函数可以在大图上进行广度优先搜索。目前该应用程序正在运行并在一段时间后完成。finished我想向 EventEmitter添加一个事件。
我的第一个想法是为每个进程实现一个计数器Recursive。但如果某个Recursive进程不调用该counter--方法,这可能会失败。
var App = function(start, cb) {
var Recursive = function(a, cb) {
// **asynchronous** and recursive breadth-first search
}
var eventEmitter = new EventEmitter();
cb(eventEmitter);
Recursive(start);
};
Run Code Online (Sandbox Code Playgroud)
finished如果所有Recursive功能都完成了,我怎样才能发出消息?
编辑应用程序不是在图表中搜索某些内容,它必须遍历完整的图表才能完成。并且不知道图中有多少个元素。
Edit2像计算反射这样的东西是完美的,但它似乎不存在于javascript中。
该图非常不稳定,我正在执行一些嵌套的异步调用,这些调用都可能会失败。有没有办法在不使用计数器的情况下知道所有异步递归调用何时完成?
您可以在函数外部使用布尔值作为标志并在到达目标节点时更改其值吗?也许您的递归情况可以在布尔值的情况下,当找到节点时您可以更新它的值...或者您是否在问您的递归函数完成的基本情况是什么?