Outils pour utilisateurs

Outils du site


web:javascript:promise

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
web:javascript:promise [le 09/04/2020 à 12:41] – créée Yoskoweb:javascript:promise [le 05/10/2020 à 13:44] (Version actuelle) – [Promises multiples] Yosko
Ligne 1: Ligne 1:
 ====== Principe des Promises ====== ====== Principe des Promises ======
 +
 +===== Les bases =====
 +FIXME à expliquer :
 +  - Rappeler les principes d'asynchronicité
 +  - les bases des Promises ([[https://javascript.info/promise-basics|lien en anglais]]).
 +  - exemple : fetch
 +  - principe d'une fonction async + un exemple maison
 +  - utilisation du await
 +
 ===== Promises multiples ===== ===== Promises multiples =====
 Pour attendre le succès de plusieurs promesses d'un coup, on utilise [[https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/all|Promise.all()]]. Pour attendre le succès de plusieurs promesses d'un coup, on utilise [[https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Promise/all|Promise.all()]].
Ligne 26: Ligne 35:
     "http://url3"     "http://url3"
 ]; ];
 +
 +
 synced_json_fetch(request_urls, function(values) { synced_json_fetch(request_urls, function(values) {
 +    // code executed only when every url fetching and parsing will be done
 +    console.log(values);
 +});
 +
 +// other way to call it, using then on the returned promise
 +synced_json_fetch(request_urls).then(function(values) {
     // code executed only when every url fetching and parsing will be done     // code executed only when every url fetching and parsing will be done
     console.log(values);     console.log(values);
 }); });
 </code> </code>
 +
 +Il y a d'autres approches aux Promises multiples, plutôt que le Promise.all() : Promise.allSettled() ou Promise.race(), par exemple ([[https://javascript.info/promise-api|page en anglais expliquant les différences]]).
web/javascript/promise.1586436062.txt.gz · Dernière modification : le 09/04/2020 à 12:41 de Yosko