[英]Traversing javascript promises tree
我是javascript promise的新手,並試圖解決隨后的問題:
有一個帶有節點的樹,其結構如下
node: {id, children:node[]}
通過調用接收一個節點
getNode(id)
其中getNode返回一個JavaScript承諾
所以我得到一個節點對象
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;
});
});
}
假設孩子是一個ID列表
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.