Hallo, ich habe die folgende rekursive Python-Funktion, die Werte von allen Kind-Knoten summieren und ich möchte in NodeJS portieren, aber ich habe ein Problem mit Async-Aufrufen.NodeJS - Summe Async führt zu rekursiver Funktion
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
Ich habe versucht, dies zu tun, aber ich brauche wahrscheinlich Kette es mit dem Versprechen, weil die Gesamtzahl, während ich Schleife nicht verfügbar ist, wie ich es von einer Asynchron-Funktion
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;
});
}
eine Möglichkeit, dieser Code-Port, um noch einfacher ES2016 + wäre 'async/await' (die mit süßen Güte nur Versprechen ist) - mit nur Versprechungen (und damit eine bessere Browser-Kompatibilität) –