Considérez l'extrait suivant:
p>
class Foo { async method() => { console.log('method'); } } const f = new Foo(); f.method();
3 Réponses :
Q: Cela fonctionnerait-il pour vous:
class Foo { async method () { console.log('method'); } } const f = new Foo(); f.method();
Cela n'utilise pas de champ de classe, cependant, je demande ce qui ne va pas avec ma mise en œuvre. Je suis bien conscient de la façon d'utiliser une méthode normale dans une classe
Selon Mozilla Cette syntaxe n'est pas pris en charge dans IE que je gousse que vous obtenez l'erreur là-bas, votre deuxième exemple de travail de travail en chrome.
p>
class Foo { method = async () => { console.log('method'); } } const f = new Foo(); f.method();
Tous les extraits sont transpilés. Si vous ouvrez cette page sur Internet Explorer, vous verrez les premier et troisième extraits qui travaillent comme vous le souhaitez.
Testé ce qui précède à IE 11 et il n'a pas fonctionné, et si vous lisez la compatibilité du navigateur, vous verrez que la dose de syntaxe ne supporte pas IE
@ Alen.toma op utilise un transpilateur (Babel) spécifiquement parce que i> de compatibilité du navigateur. C'est ce qu'un transpilateur fait.
@ Alen.toma Voir ma capture d'écran dans IE: ça marche comme prévu i.Stack.imgur.com/ Ouxip.png
Les fonctions ASYNC peuvent-elles être dans les champs de classe? p>
oui. p>
p>
//Without BabelJS / ES2015 class Foo { method = async () => { console.log('method'); } } const f = new Foo(); f.method();
Donc, le transpilateur prend en charge les champs de classe, même s'ils sont uniquement à l'étape 3, (peut-être qu'ils seront intégrés à ES2020?) Bien que async code> n'est pas pris en charge, malgré l'être dans la spécification pendant un certain temps à présent? C'est surprenant, je m'attendais à ce que ce soit l'inverse. On dirait que le transpilateur ne prend pas en charge Fonctions asynchroniques ordinaires i> non plus.
Je suis d'accord avec vous sur les incohérences, mais je n'ai pas de bonne réponse pour cela malheureusement. Si je devais deviner i>, il utilise un plugin Babel qui permet aux propriétés de la classe (qui, à l'époque, était étape 1 b>), comme indiqué sur Dans cet article de 2016 .
Vous devriez certainement mentionner dans la question que vous avez le Utilisez Babel B> activé dans vos extraits. Votre code fonctionne bien sans elle.
Centré SyntaxError: Inline Babel Script: Jeton inattendu (3:20) Code>