Description Un objet Promise est un moyen permanent d'accéder à une valeur qui peut être dans différents états :
- valeur déjà accessible
- valeur qui sera éventuellement disponible plus tard
- valeur qui ne le sera jamais
Il faut comprendre le mot Promise comme une "promesse d'existence".
Les Promise sont le moyen idéal de manipuler des traitements issus d'appels asynchrones.
Les cas d'usages d'appels asynchrones sont nombreux :
- appel vers un service externe (via XMLHttpRequest par exemple)
- attente d'une action de l'utilisateur
- attente d'une réponse de l'appareil de l'utilisateur (position GPS, état batterie, ...)
- optimisation de la fluidité du code (pour le confort utilisateur, via WebWorker, pour l'optimisation SEO, ...)
La fonction execute() est exécutée immédiatement à la création de promesse.
Cette fonction attend deux paramètres, qui sont deux fonctions prédéfinies par le moteur JavaScript. Il ne faut donc pas les définir dans votre code source, mais les appeler dans la fonction execute() : resolve(valeur) à exécuter pour signaler que la promesse est tenue reject(raison) à exécuter pour signaler que la promesse a échoué
Pour résumer, la fonction execute() :
- déclenche un traitement (généralement non instantané ou non garanti)
- appelle resolve() ou reject() pour changer l'état de promesse.
Depuis ES7, les Promise sont également utilisables avec les opérateurs await et async.