Welche Version von Async verwendest du?
2.5.0
In welcher Umgebung trat das Problem auf (Knotenversion/Browserversion)
Betriebssystemversion: OS X 10.12.6
Knotenversion: 8.4.0
Browserversion: N/A
Was hast du gemacht?
// templateNames is an array of strings
async.map(templateNames, async (templateName, next) => {
let template;
try {
template = await utils.getFile(templateName);
} catch(err) {
next(err);
}
...
// and so on
Was haben Sie erwartet?
next
ist eine Iterationsfunktion
Was war das tatsächliche Ergebnis?
next
ist undefined
Am Ende habe ich nur die .then().catch()
Syntax verwendet, um mein Ziel zu erreichen, wollte dies aber trotzdem mit einem AsyncFunction
teilen ( HINWEIS: Dies ist nicht die async
Definition, sondern die native AsyncFunction
Object ) führt dazu, dass der Iterierte ( next
) vom Typ undefined
.
async
Funktionen werden ab 2.3.0 anders behandelt -- es wird kein Callback übergeben. Geben Sie stattdessen einfach einen Wert (oder ein Versprechen) zurück. In Ihrem Beispiel ist sogar try
/ catch
nicht erforderlich, da alle ausgegebenen Fehler von Async abgefangen werden. Dies sollte Ihren Code ein wenig vereinfachen.
// templateNames is an array of strings
async.map(templateNames, async templateName => {
const template = await utils.getFile(templateName);
...
// and so on
AsyncFunction
Dokumente: http://caolan.github.io/async/global.html
🤦♂️ Es wäre klug gewesen, diesen Teil der Dokumente klarer zu lesen. Vielen Dank.
Um fair zu sein, diese Beschreibung ist auf der Docs-Site nicht so offensichtlich ... 📜
Ich finde es eigentlich ziemlich klar. Ich habe zunächst die Dokumente durchgesehen und diesen Teil übersehen.
Hilfreichster Kommentar
async
Funktionen werden ab 2.3.0 anders behandelt -- es wird kein Callback übergeben. Geben Sie stattdessen einfach einen Wert (oder ein Versprechen) zurück. In Ihrem Beispiel ist sogartry
/catch
nicht erforderlich, da alle ausgegebenen Fehler von Async abgefangen werden. Dies sollte Ihren Code ein wenig vereinfachen.AsyncFunction
Dokumente: http://caolan.github.io/async/global.html