J'y reviens...

Envoyé par
TiranusKBX
tu doit mettre le mot await pour les appels asynchrones(déclarées avec le mot async) comme dans la spécification EcmaScript 2017
Désolé mais ce que tu a écrit est faux, en JavaScript les appels sont
toujours asynchrones.
Ce n'est donc pas l'utilisation d'un
await qui rendrait la fonction subitement
asynchrone, avec ou sans elle l'est toujours.
JavaScript est un langage asynchrone et chaque fonction écrite est considérée comme un objet que les interpréteurs JavaScript exécuteront dans leur boucle d’événements sans se soucier de leur priorité.
L'utilisation du
await, c'est justement pour prévenir que l'affectation d'appel doit attendre que le la fonction appelée soit achevée avant de passer aux instructions suivantes.
Et cette fonction appelée doit elle aussi obéir à ce protocole en renseignant une promesse que l'await consulte à chaque cycle de la boucle événementielle de l'interpréteur, pour vérifier s'il peut récupérer le résultat.
S'il la fonction appelée ne respecte pas cette syntaxe, alors la fonction
await ne pourra pas vérifier que la fonction appelée se soit achevée ou non, et il prendra la valeur "undefined" à la place, sauf si par miracle la fonction ait pu répondre avant dans le temps de cycle d’exécution qui lui était allouée.
Ce qui au passage permet de voir qu'il y a un faussé entre les langages JavaScript et C#.
Comparer des langages en se basant uniquement sur leur syntaxe, c'est le meilleur moyen de mal programmer avec.
0 |
3 |