У меня есть функция, которая сначала выполняет поиск по большому графику.В настоящее время приложение работает и через некоторое время завершает работу.Я хочу добавить событие 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);
};
Как вывести сообщение finished
, если все функции Recursive
завершены.
Редактировать Приложение не ищет что-либо на графике, оно должно пройти весь график, чтобы закончить.И неизвестно, сколько элементов в графике.
Edit2 Что-то вроде вычислительного отражения было бы идеально, но, похоже, его нет в javascript.
График очень нестабилен, и я делаю несколько вложенных асинхронных вызовов, которые могут потерпеть неудачу.Есть ли способ узнать, когда все асинхронные рекурсивные вызовы завершены без использования счетчика?