1
嗨那里我有以下python递归函数,从所有子节点求和值,我想在NodeJS中端口,但我有一些异步调用的问题。NodeJS - 总结异步结果的递归函数
def getTree(parent_id, level=1):
c.execute('select * from users where parent_id=?', (parent_id,))
rows = c.fetchall()
total = 0
for child in children:
total += getAsyncValue(child.id)
total += getTree(child.id, level+1)
return total
我试图做到这一点,但我可能需要与承诺链,因为总次数不可用,而我循环,因为我得到它从一个异步函数
getTree = function(parent_id, level=1) {
c.all("select * from users where parent_id="+parent_id, function(err, children) {
var total = 0;
children.forEach(function(child) {
total += getAsyncValue(child.id)
total += getTree(child.id, level+1)
});
return total;
});
}
一种方式更容易港口这一代码将ES2016 +'异步/ await'(这是刚刚与含糖善良少辉) - 只使用承诺(因此更好的浏览器兼容性)是一个涉及多一点 –