Async fonctions de la flèche ressemble à ça :
const foo = async () => {
// do something
}
Async fonctions de la flèche ressemble à ceci pour un seul argument qui lui a été transmis :
const foo = async evt => {
// do something with evt
}
Async fonctions de la flèche ressemble à ceci pour plusieurs arguments qui lui a été transmis :
const foo = async (evt, callback) => {
// do something with evt
// return response with callback
}
Le site anonyme fonctionne également :
const foo = async function() {
// do something
}
Une fonction asynchrone déclaration ressemble à ça :
async function foo() {
// do something
}
Utilisation d'une fonction asynchrone dans un rappel :
const foo = event.onCall(async () => {
// do something
})
Utilisation de méthode asynchrone à l'intérieur d'un classe :
async foo() {
// do something
}
2 votes
Il est intéressant de noter qu'au moins firefox et babel vous permettent de le faire.
41 votes
var foo = async () => await Promise.resolve('ha');
- fonctionne très bien2 votes
En disant
it doesn't work
ne veut rien dire... est-ce que vous obtenez une erreur ? peut-être que vous faites quelque chose de mal, sans le code qui "ne fonctionne pas" et une description significative de la façon dont il ne fonctionne pas, je ne peux que supposer que vous faites quelque chose de mal (ou que vous utilisez un vieux navigateur).0 votes
@JaromandaX Je ne le trouve dans aucune spécification, du moins jusqu'à présent.
1 votes
C'est bien possible @Pointy, mais cela fonctionne nativement dans les versions actuelles de firefox et chrome et dans node.js (7.7.4)
1 votes
Le site Spécifications de l'ES2017 a une section sur les définitions des fonctions flèches asynchrones @Pointy.
0 votes
@MikeMcCaughan oui, je viens d'y venir ; je me suis dit que cela devait être quelque part car j'ai vu des discussions sur Babel à ce sujet (merci).
0 votes
Que voulez-vous dire par " syntaxe équivalente pour Node.js " ? Dès que le nœud supporte
async
/await
il supportera exactement cette syntaxe.0 votes
Il s'est avéré que mon problème était en fait que je n'avais pas mis à jour node.js à la dernière version. Je l'aurais vu immédiatement mais je n'ai pas pu trouver un bon exemple de syntaxe correcte. J'ai mis à jour ma question pour refléter cela.
1 votes
@JaromandaX Vous avez raison. J'aurais dû afficher mon message d'erreur.
0 votes
@Bergi J'ai édité dans la précipitation et j'ai fait la stupide erreur d'écrire "node.js" au lieu de "arrow functions" Voir ma question mise à jour.
0 votes
@BonsaiOak - vous pouvez toujours le faire, il n'est pas trop tard.