Aller au contenu principal


Les promesses

Une promesse (objet Promise en JS) est un objet JS créé (et retourné) au lancement d'une fonction "asynchrone".

Une programme effectuant un appel à une fonction asynchrone, n'attend pas la fin de l'exécution (qui peut être très longue) de la fonction appelée, mais poursuit son exécution. La plupart des interactions d'un navigateur avec l'environnement sont asynchrones :
  • requête de bases de données ;
  • accès aux interfaces (caméra ...).

 

Dernière MAJ :
03 Juil 2024
Billet créé le :
15 mai 2024

Une promesse possède des propriétés internes :

  • son état (state) : 

    • en cours de traitement ;

    • terminée avec succès ;

    • terminée suite à un échec.

  • sa valeur (result) :

    • passe de "undefined" à la valeur résultat (correspond généralement aux données renvoyées par  le "serveur" interrogé) en cas de terminaison avec succès ;

    • passe de "undefined" à une valeur d'erreur  en cas de terminaison suite à un échec.

Une promesse dispose également, de méthodes pour gérer son état. Ces méthodes, en modifiant l'état de la promesse, informent le navigateur des opérations futures à exécuter. 

Ces opérations figurent dans les fonctions passées en argument de ces méthodes, par exemple, dans les méthodes then() ou catch() de la promesse.

Ces opérations qui dépendent du résultat de l'exécution de la fonction asynchrone (qu'il y ait succès ou échec) pourront être déclarées à la suite les unes des autres dans un ordre bien précis par la technique du chainage.

Les pages du chapitre, qui suit,  détaillent ces opérations en présentant deux exemples de fonctions asynchrone très utilisées en Javascript :

  •  fetch()  ;

  •  jQuery $.ajax().