J.B. DadetJ.B. DadetJ.B. Dadet DIASOLUKADIASOLUKADIASOLUKA LuyaluLuyaluLuyalu NzoyifuangaNzoyifuangaNzoyifuanga
JAVASCRIPT
(ProgrammationInternet)
VOL. XXIII
+243 - 851278216 - 899508675 - 995624714 - 902263541 - 813572818
INTRODUCTION :
L'objet "Promise" (EcmaScript 6, 2015), facilite la programmation asyn-
chrone (multithreading) : le déroulement du programme se poursuit pen-
dant que les opérations asynchrones tournent aussi.
L’objet Promise fonctionne en mode «use strict» ou pas.
Le principe de fonctionnement est le suivant :
La définition (ou construction) de la fonction (ou objet) Promise définit en
paramètre la fonction asynchrone [à exécuter au moment de son appel] qui
est un CALLBACK. Cette fonction asynchrone (Promise) a deux paramètres,
le premier paramètre sera exécuté en cas de réussite (=resolve) pour pas-
ser un argument à la méthode « then ». Le deuxième paramètre sera exé-
cuté en cas d'échec (=reject) pour passer son argument à la méthode
« then ». Le paramètre ainsi retenu de la fonction Promise passera donc son
argument à la méthode "then" (de la fonction Promise) dans l'appel . Si le
premier argument n’est pas utile il faut tout bonnement le baptiser « unde-
fined » on ne peut pas laisser la place du premier paramètre vide.
La méthode « then » peut donc prendre tout au plus deux arguments facul-
tatifs (qui son des CALLBACKs), le premier exécutant si Réussite (selon l’ar-
gument du premier paramètre de Promise), et le deuxième argument de
« then » si Échec (selon l’argument du deuxième paramètre de Promise).
Si le premier argument n’est pas utile il faut tout bonnement le baptiser
« undefined » on ne peut pas laisser la place du premier paramètre vide.
La méthode « then » passe une valeur à une éventuelle deuxième « then »
via la directive « return ».
Le pseudo-code générique d’une Promise est :
var promise = new Promise(function(successf, failf) {
// Tache pouvant bien être async
if (/* Quand absolument TOUT a bien marché*/) {
successf("msg succès");
}
else { // Une ou plusieurs autres choses ont crashé
failf(Error("msg échec")); // objet « Error »