gpt4 book ai didi

javascript - 遍历 javascript promise 树

转载 作者:行者123 更新时间:2023-11-28 17:45:27 25 4
gpt4 key购买 nike

我是 JavaScript Promise 的新手,并尝试解决后续问题:

有一棵树,其节点的结构如下

node: {id, children:node[]}

通过调用接收到一个节点

getNode(id)

其中 getNode 返回 JavaScript Promise

所以我得到一个节点对象

getNode(id).then(function(node) {
id = node.id;
children = node.children;

})

现在我想将整棵树放入一个对象中,例如

treeObject = getTree(rootNodeId)

因此,treeObjects 的最终内容应该是例如

 {1,children:
[{2,children
[{5,null},{6,null},{7,null]},
{3,children[{8,null},{9,null]}...

???感谢您的回答!

最佳答案

async function getTree ( id ){
const node = await getNode(id);
node.children = await Promise.all( node.children.map(getTree));
return node;
}

或者没有异步等待:

 function getTree ( id ){
return getNode(id).then(function(node){
return Promise.all( node.children.map(getTree)).then(function(children){
node.children = children;
return node;
});
});
}

假设children是一个id列表

关于javascript - 遍历 javascript promise 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46863275/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com