Fonction
Afin de présenter d'autres possibilités des promesses, nous allons créer une fonction qui génère une promesse avec retard.
1
const delay = (duration) =>
2
new Promise((resolve, reject) => {
3
setTimeout(() => resolve(`Ok en ${duration} seconde(s)`), duration * 1000);
4
});
delay est une fonction qui retourne une promesse après duration secondes.
1
const delay = (duration) =>
2
new Promise((resolve, reject) => {
3
setTimeout(() => resolve(`Ok en ${duration} seconde(s)`), duration * 1000);
4
});
5
6
delay(2).then((response) => console.log(response));
7
8
console.log("Exemple de Promesse");
9
Le texte s'affiche après 2 secondes.
Exemple : Lancement de plusieurs promesses en parallèle.
1
const delay = (duration) =>
2
new Promise((resolve, reject) => {
3
setTimeout(() => resolve(`Ok en ${duration} seconde(s)`), duration * 1000);
4
});
5
6
delay(2).then((response) => console.log(`promesse 1 : ${response}`));
7
delay(5).then((response) => console.log(`promesse 2 : ${response}`));
8
delay(3).then((response) => console.log(`promesse 3 : ${response}`));
9
10
console.log("Exemple de Promesse");
11
On peut voir que la promesse 3 est retournée avant la promesse 2.
Exemple : Lancement de plusieurs promesses consécutives.
Étant donné qu'une promesse retourne une promesse, on peut chaîner les then.
1
const delay = (duration) =>
2
new Promise((resolve, reject) => {
3
setTimeout(() => resolve(`Ok en ${duration} seconde(s)`), duration * 1000);
4
});
5
6
delay(2).then((response) => console.log("promesse 1"))
7
.then((response) => delay(5))
8
.then((response) => console.log("promesse 2"))
9
.then((response) => delay(3))
10
.then((response) => console.log("promesse 3"))
11
12
console.log("Exemple de Promesse");
13
On peut voir que les promesses sont exécutées les unes à la suite des autres.