Я пытаюсь просмотреть результаты базы данных из своего родительского идентификатора, эти результаты можно сравнить с деревом с несколькими ветвями на каждом узле, в котором я хочу просмотреть его ветвь на каждую ветку (не уровень по уровню). Вот моя рекурсивная функция:NodeJS: просмотр рекурсивного дерева
(function tail(file, parentID, entryCount) {
console.log("TAIL CALLED: ", self);
var opts = new Map();
var data = "";
opts["parentID"] = parentID;
opts["Key"] = "";
opts["Value"] = "";
opts["RowID"] = "";
self.Read(opts, function (err, rslt) {
for (var i = 0; i < rslt.length; ++i) {
(function() {
data = (rslt[i].Key + (rslt[i].Value != "-" ? rslt[i].Value : ""));
data += "\n";
var rowid = rslt[i].rowid;
fs.appendFile(file, data, function (err, rslt) {
(tail(file, rowid, entryCount));
});
})();
}
})
})(file, parentID, entryCount);
Эта функция дает мне уровень по результату уровня, я думаю, что я могу понять, почему, но не могу видеть (рекурсивный вызов хвоста помещается в стек, а не казнили сразу?) как заставить его работать ...
Я пробовал с fs.appendFileSync() слишком называть хвост под, но та же проблема остается.
Цикл for все еще выполнен до рекурсивного вызова хвоста, поэтому у меня все еще есть результат ширины, а не результат deph: s – Robin