JS - Chapitre 14 - Promises Flashcards

1
Q

Qu’est-ce qu’une promise?

A

C’est un objet contenant un future résultat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quels sont les 3 états d’une promise

A

pending, fulfilled, rejected

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Quelle est la séquence des états d’une promise

A

d’abord pending ensuite soit fulfilled soit rejected et c’est fini

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Exemple de création d’une promise

A

function delay(interval) {
return new Promise(function(resolve) {
return setTimeout(resolve,interval);
}
}

delay(1000).then(()=>console.log(‘done’));

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelles sont les 2 méthodes utilitaires d’une promise

A

Promise.resolve(value) : création d’une promise résolu
Promise.reject(error): création d’une promise rejeté

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Mapping, FlatMapping et promise

A

le then agit comme un mapping: si on lui injecte une fonction de mapping, il retourne un promise contenant la valeur transformée
et comme un flatmapping: il n’y a pas succession de promise qui enveloppe un résultat comme cela pourrait se passer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Comment récupérer les erreurs des promises?

A

En utilisant catch. Il saute les multiples then pour aller vers le catch

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est que le chainage des promises?

A

on peut chainer les then pour faire plusieurs opérations les unes à la suite des autres quand les résultats de l’un est prêt pour le suivant

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Opération asynchrone des promises

A

Utilisation de Fetch API par exemple pour atteindre le résultat d’une requête asynchrone avant de traiter le résultat

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Exemple d’utilisation de Fetch

A

function toJson(response) { return response.json(); }

fetch(url de l’api).then(toJson).then(logIdentity).catch(logError);

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Retourner le résultat de la première promise qui est rejected ou fulfilled?

A

Promise.Race([promiseEvent1,promiseEvent2]).then(logIdentity)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Retourner le résultat de plusieurs promises ou le rejet immédiat

A

Promise.all( …)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Retourner un tableau des promises fulfilled ou rejected

A

Promise.allSettled

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Est-ce que la promise suit les lois des Functors?

A

Non, il ne faut pas refactoriser de promise.then(f).then(g) en promise.then(x=>g(f(x)));

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Est-ce que les promises sont des monads?

A

Non les lois sur l’identité sont brisées

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Promise functors ou monads

A

Ni l’un ni l’autre