Asycn n元树访问算法

时间:2018-10-06 18:15:25

标签: asynchronous recursion tree preorder

我的处境非常罕见。我需要访问带有异步功能的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()?我以哪种方式可以理解树访问已结束?我没有递归堆栈。

0 个答案:

没有答案