Я в очень необычной ситуации.Мне нужно посетить n-арное дерево с асинхронными функциями, но проблема переключения с синхронизации на асинхронную заключается в том, что я потерял обратную обратную связь.Позвольте мне объяснить с помощью некоторого кода.
Это функция исследования в JavaScript:
function exploreTree(currentNode, level, network_tree, cb) {
console.log("Exploring: " + currentNode);
getAsyncNodeInfo(currentNode, function (err, data) {
if (!err) {
network_tree[level].push(data.Item);
data.Item.childs.forEach(childNode => {
exploreTree(childNode, level + 1, network_tree, cb);
});
}
})
}
Это простой предварительный визит, и вывод console.log () верен.Но теперь, когда я должен вызвать cb ()?Каким образом я могу понять, что посещение дерева было окончено?У меня нет рекурсивного стека ..