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.
Dans cet exemple, nous créons une promesse toujours tenue après un delai de 1000 ms fixé via setTimeout().
Page mise à jour le
QUERY 10
SELECT *, DATE_FORMAT(dt_insert, '%d/%m/%Y %H:%i' ) AS jour_insert, DATE_FORMAT(dt_maj, '%d/%m/%Y %H:%i' ) AS jour_maj FROM js_reference ORDER BY IDfather, name
SELECT * FROM js_navigateur ORDER BY ordre
SELECT * FROM js_version ORDER BY ID
SELECT * FROM js_reference WHERE phpfile="promise"
UPDATE js_reference SET nb_visi=nb_visi+1, nb_visi_delai=nb_visi_delai+1 WHERE ID='420'
SELECT * FROM js_navigateur ORDER BY ordre
SELECT js_equivalent_ressource.*, js_equivalent_language.language, js_equivalent_language.favico
FROM js_equivalent_ressource, js_equivalent_language
WHERE js_equivalent_ressource.idLanguage = js_equivalent_language.id
AND js_equivalent_ressource.etat=1
AND js_equivalent_language.etat=1
AND js_equivalent_ressource.typeof='REF'
AND js_equivalent_ressource.idRessource="420"
SELECT * FROM js_exemple WHERE ID='420' ORDER BY ordre
SELECT * FROM js_url WHERE ID='420' ORDER BY ordre