Quelle version d'async utilisez-vous ?
2.5.0
Dans quel environnement le problème s'est-il produit (version du nœud/version du navigateur)
Version du système d'exploitation : OS X 10.12.6
Version du nœud : 8.4.0
Version du navigateur : N/A
Qu'est-ce que tu as fait?
// 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
Que vous attendiez-vous à ce qu'il se passe?
next
est une fonction itérée
Quel a été le résultat réel ?
next
est undefined
J'ai fini par utiliser la syntaxe .then().catch()
pour atteindre mon objectif, mais je voulais toujours le partager en utilisant un AsyncFunction
( REMARQUE : ce n'est pas la définition async
mais le AsyncFunction
natif ) fait que l'itéré ( next
) est de type undefined
.
async
sont traitées différemment à partir de la version 2.3.0 -- elles ne reçoivent pas de rappel. Au lieu de cela, retournez simplement une valeur (ou Promise). En fait, dans votre exemple, même le try
/ catch
n'est pas nécessaire car toute erreur renvoyée sera détectée par Async. Cela devrait simplifier un peu votre code.
// templateNames is an array of strings
async.map(templateNames, async templateName => {
const template = await utils.getFile(templateName);
...
// and so on
AsyncFunction
docs : http://caolan.github.io/async/global.html
🤦♂️ Lire cette partie des documents plus clairement aurait été intelligent. Merci.
En toute honnêteté, cette description n'est pas si évidente sur le site de docs... 📜
Je pense en fait que c'est assez clair. J'ai d'abord jeté un coup d'œil à la documentation et j'ai raté cette partie.
Commentaire le plus utile
async
sont traitées différemment à partir de la version 2.3.0 -- elles ne reçoivent pas de rappel. Au lieu de cela, retournez simplement une valeur (ou Promise). En fait, dans votre exemple, même letry
/catch
n'est pas nécessaire car toute erreur renvoyée sera détectée par Async. Cela devrait simplifier un peu votre code.AsyncFunction
docs : http://caolan.github.io/async/global.html