Tous les rappels JavaScript sont-ils asynchrones ?
Contrairement à la croyance populaire, tous les rappels JavaScript ne sont pas asynchrones. Par exemple, les rappels utilisés dans Array#sort et String#replace s'exécutent de manière synchrone.
Rappels asynchrones
Les rappels asynchrones sont ceux qui s'exécutent ultérieurement, permettant à d'autres codes pour fonctionner simultanément. En règle générale, les rappels asynchrones impliquent des demandes de ressources externes (par exemple, des appels jQuery AJAX).
Appels jQuery AJAX
Les fonctions jQuery AJAX peuvent être à la fois synchrones et asynchrones, selon le Paramètre d'indicateur "asynchrone". Cependant, les navigateurs fonctionnent généralement par défaut sur un fonctionnement asynchrone pour les objets XMLHttpRequest (utilisés dans jQuery AJAX).
Asynchronicité dans Node.js
Dans Node.js, l'asynchronicité est introduite via fonctions spécifiques telles que les E/S de fichiers, process.nextTick, setTimeout et setInterval. Les opérations asynchrones en dehors de ces fonctions ne sont pas prises en charge.
Création de fonctions asynchrones
Avant ECMAScript 6, les fonctions asynchrones en JavaScript reposaient sur des fonctions fournies par l'hôte (par exemple, nextTick dans Node.js, setTimeout dans les navigateurs).
Promesses ECMAScript 6
ECMAScript 6 a introduit les promesses en tant que concept au niveau du langage pour la programmation asynchrone. Les rappels attachés aux promesses (via then ou catch) sont toujours invoqués de manière asynchrone, même si la promesse est déjà réglée lorsqu'ils sont attachés.
Par conséquent, la meilleure façon de garantir l'exécution asynchrone des rappels est d'utiliser des promesses au lieu de directs. rappels.
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!