Les Promises
JavaScript : Introduction à l'asynchrone
En programmation, on dit asynchrone l'exécution différée d'une instruction qui serait normalement bloquante.
Une exécution synchrone est une exécution qui nous parait la plus intuitive :
Les instructions sont exécutées dans l'ordre de haut en bas
Une instruction attend la fin de la précédente avant de démarrer

JavaScript est théoriquement synchrone. Théoriquement parce que certaines fonctions très utilisées ne le sont pas et que parfois les accès concurrents (plusieurs fonctions / plusieurs scripts essaient d'écrire en même temps) à la console et les caprices du navigateur utilisé peuvent perturber la synchronicité.
Ces problèmes se sont plutôt améliorés depuis 2015 - 2016, mais on a encore parfois quelques surprises.
La gestion de l'asynchrone par JS
JavaScript place les instructions asynchrones dans une file d'éxécution à part (Task Queue). Il les éxécute les unes après les autres et les envoie au fur et à mesure dans le fil d'éxécution principal sans bloquer le reste du programme.

Exemple synchrone vs asynchrone
JavaScript: Les Promise
Une promise est une sorte d'objet à qui l'on transmet deux fonctions qui sont appelées lors de son exécution :
resolve: si tout s'est bien passéreject: si une erreur s'est produite
et qui retourne deux fonctions :
thensi tout s'est bien passécatchsi une erreur s'est produite
Exemple
Si ensuite, je veux appeler ma fonction :