Rappels JavaScript : asynchrones ou non ?
Les rappels JavaScript ne sont pas universellement asynchrones. Dans certains scénarios, comme l'exemple que vous avez fourni avec les fonctions addOne et simpleMap, le code fonctionne de manière synchrone.
JavaScript asynchrone dans le navigateur
Fonctions AJAX basées sur le rappel dans jQuery sont souvent asynchrones car ils impliquent des requêtes XHR (XMLHttpRequest). Par défaut, les requêtes XHR dans les navigateurs sont asynchrones, ce qui permet l'exécution continue du script pendant le traitement de la requête.
JavaScript asynchrone dans Node.js
Dans Node.js, le comportement asynchrone résulte généralement d'opérations d'entrée/sortie (E/S), telles que les E/S de fichiers, process.nextTick, setTimeout et setInterval. Les appels de base de données basés sur le rappel avec MongoDB/Mongoose sont asynchrones en raison des opérations d'E/S sous-jacentes impliquées dans l'interaction avec la base de données.
Situations asynchrones prédéterminées
L'asynchronicité est souvent ancrées dans l’environnement. Dans le navigateur, les fonctions de rappel associées aux requêtes XHR sont intrinsèquement asynchrones. Dans Node.js, les rappels liés aux opérations d'E/S sont également asynchrones.
Fonctions asynchrones personnalisées
Sans compter uniquement sur des fonctions environnementales spécifiques, vous pouvez obtenir un comportement asynchrone en tirant parti des promesses d'ES6. Les promesses fournissent un mécanisme au niveau du langage pour définir les opérations asynchrones. Les fonctions de rappel attachées aux promesses (via then et catch) sont toujours exécutées de manière asynchrone, garantissant que le code suivant la promesse ne bloque pas.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3