Raconté par Arnaud de Mesmay sur la base d'un cours créé par Rémi Forax et Vincent Jugé.
Une Promise est la promesse d'une valeur (ou erreur) à venir.
fetch()
fetch("http://api.foo.bar.com/users/bob")
.then(response => {
if (response.ok) {
return ...
}
throw Error(response.statusText);
});
Attention, fetch renvoie une réponse même si la réponse est Not Found.
fetch() fait une requête AJAX et renvoie une Promise.
response.json() est aussi une Promise qui va parser le JSON.
then() permet de combiner les promesses !
URL.createObjectURL permet de créer une URL locale contenant les données de l'image.
blob = binary large object
Calcul de plusieurs promesses en parallèle :
le résultat est un tableau des promesses résolues.
Attention ! Si on enchaîne des appels à
Promise.all(),
on peut créer des goulots d'étranglement.
Il est plus efficace de paralléliser au maximum !
La promesse résultante est calculée dès qu'une des promesses a fini.