-2
votes

Pour la boucle est exécuté de manière asynchrone dans JavaScript?

Dans mon exemple ci-dessous, pourquoi connecte-t-il 512, plutôt que 1? Je comprends que JavaScript est synchrone, de sorte que la journalisation ne se produise pas longtemps avant la fin de la boucle? Pour cette raison, je m'attendais à un résultat = 1 lorsque connecté. XXX


3 commentaires

Je ne sais pas si c'est une faute de frappe, mais re: "Je comprends JavaScript est synchrone": il est synchrone, sauf si vous faites quelque chose d'asynchronisation. Ce code est synchrone, le code après la boucle ne s'exécutera pas tant que la boucle n'était terminée. Tout devrait être un rappel autrement.


Pour la plupart, la plupart des expressions JavaScript sont séquentielles (synchrones), y compris des boucles. Il existe certaines méthodes asynchrones, telles que SetTimeout , seinterval et xmlhttprequest qui sont également initiés séquentiellement, mais attendent de manière asynchrone pour un retour ou un rappel.


Pourquoi vous attendriez-vous ça? La boucle est exécutée avant le journal.


3 Réponses :


1
votes

synchrone : signifie qu'une seule opération peut être en cours à la fois.

Selon cette définition, votre console.log () ne sera exécuté que lorsque votre boucle a fini d'exécuter.

Si vous souhaitez que votre code exécuter console.log () Tout en exécutant votre boucle, vous voulez dire que votre code est asynchrone.


0 commentaires

1
votes

Le problème ici est quand vous connectez-vous.

Lorsque vous enregistrez le contenu de "Résultat", la boucle FOR est terminée et la valeur de la variable "résultat" a été mise à jour chaque itérature de la boucle.

Ce qui suit pourrait illustrer ce xxx

vous donnera le résultat suivant: xxx


0 commentaires

0
votes

Synchronisation JavaScript SYNCHRONISANTE C'est la moyenne est un travail de fil afin que cette opération soit itérative Vous pouvez voir ce lien pour plus d'informations

considération :)


1 commentaires

S'il vous plaît, ne vous connectez pas simplement à une autre réponse.