2016-05-02 13 views
2

Es ist einfacher, nur den Code zu suchen:Nested Async/Await Funktion

async function addFiles(dir,tree) { 
    return (await readDir(dir)) 
    .map(name => {await readDir(dir); return name;}) // error here 
} 

Dieser Code gibt einen Fehler in Zeile 3 und sagte, es gibt ein unerwartetes Token in der Nähe von readDir. Ich verstehe nicht, warum das nicht funktioniert.

Antwort

3

Es stellt sich heraus, ich habe vergessen, meine Pfeil-Funktion als async zu deklarieren.

der überarbeitete Code ist

async function addFiles(dir,tree) { 
    return (await readDir(dir)) 
    .map(async name => {await readDir(dir); return name;}) // error here 
} 
+0

hey, für die Zukunft, ich bin gespannt, was die Implementierung Sie diese verwenden für? von "es lesen", sieht aus wie Sie eine Baumstruktur geben und das Verzeichnis darunter lesen? Ich suche nur nach Kontext, um ein Beispiel in der Zukunft zu sehen :-) –

+0

sure thing ... Ich werde es veröffentlichen, wenn ich fertig bin, alle Bugs raus zu bekommen :) –

+0

wie ich es verstehe, ist dies eine suboptimale Art zu tun 'map 'mit' async/erwarten '. Wenn Sie ein 'Promise.all' erwarten, verwenden Sie viel mehr parallele Verarbeitung. Ich habe eine Pseudo-Code-Jsfiddle gemacht, um zu veranschaulichen, was ich denke, ist Usecase: https://jsfiddle.net/ry93b8r3/ – Brandon