Maison > interface Web > js tutoriel > le corps du texte

Explication détaillée des règles de boucle d'événements Javascript

DDD
Libérer: 2024-11-07 22:44:03
original
668 Les gens l'ont consulté

Detailed explanation of Javascript event loop rules

Comme on le sait, Javascript est un langage à thread unique, mais pourquoi pouvons-nous utiliser un fonctionnement asynchrone ? Parce que les opérations asynchrones sont exécutées par un navigateur doté de capacités multi-thread et multi-processus. Javascript s'exécute toujours sur un seul thread et est transmis au navigateur pour exécution lorsque du code asynchrone est découvert, le navigateur appelle ensuite le thread ou le processus correspondant, y compris la requête http, l'interface graphique, le déclenchement d'événements, etc., pour gérer ces opérations asynchrones. .

De manière générale, les tâches Javasctip peuvent être divisées en trois catégories : tâche de synchronisation, micro-tâche et macro-tâche, exécutées dans l'ordre de synchronisation -> micro-> macro. Le code de synchronisation est exécuté en premier, puis le navigateur placera le microcode dans une file d'attente de micro-tâches en attendant que la tâche de synchronisation soit terminée, et placera le code de macro dans une file d'attente de tâches de macro en attendant que le micro-code se termine.
Cet ordre de priorité est similaire à l'algorithme de planification de file d'attente de commentaires à plusieurs niveaux sur le système d'exploitation.

micro-tâche courante : Promise.then(), Promise.catch(), new MutationObserver(), process.nextTick()
tâche de macro courante : setTimeout, setInterview, requestAnimationFrame()

À propos, process.nextTick() n'est ni une micro-tâche ni une macro-tâche et il s'exécute simplement après le code de synchronisation et avant la micro-tâche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal