Skip to content

Commit 83d9304

Browse files
authored
Merge pull request #149 from HachemiH/master
Conflicts fixed after sync with upstream @ 14e4e9f
2 parents 216d2e9 + e6df0df commit 83d9304

File tree

1 file changed

+4
-26
lines changed

1 file changed

+4
-26
lines changed

1-js/11-async/03-promise-chaining/article.md

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,7 @@
11

22
# Chaînage des promesses
33

4-
<<<<<<< HEAD
5-
Revenons au problème mentionné dans le chapitre <info:callbacks>: nous avons une séquence de tâches asynchrones à effectuer l'une après l'autre. Par exemple, charger des scripts. Comment pouvons-nous bien le coder?
6-
=======
7-
Let's return to the problem mentioned in the chapter <info:callbacks>: we have a sequence of asynchronous tasks to be performed one after another — for instance, loading scripts. How can we code it well?
8-
>>>>>>> 14e4e9f96bcc2bddc507f409eb4716ced897f91a
4+
Revenons au problème mentionné dans le chapitre <info:callbacks>: nous avons une séquence de tâches asynchrones à effectuer l'une après l'autre. Par exemple, charger des scripts. Comment pouvons-nous bien le coder ?
95

106
Les promesses fournissent quelques options pour le faire.
117

@@ -168,11 +164,7 @@ loadScript("/article/promise-chaining/one.js")
168164

169165
Ici, chaque appel à `loadScript` renvoie une promesse et le prochain `.then` s'exécute lorsqu'il est résolu. Ensuite, il lance le chargement du script suivant. Les scripts sont donc chargés les uns après les autres.
170166

171-
<<<<<<< HEAD
172167
Nous pouvons ajouter plus d'actions asynchrones à la chaîne. Noter que le code est toujours "plat", il grandit verticallement, pas vers la droite. Il n'y a aucun signe de "pyramid of doom".
173-
=======
174-
We can add more asynchronous actions to the chain. Please note that the code is still "flat" — it grows down, not to the right. There are no signs of the "pyramid of doom".
175-
>>>>>>> 14e4e9f96bcc2bddc507f409eb4716ced897f91a
176168

177169
Techniquement, nous pourrions ajouter `.then` directement à chaque `loadScript`, comme ceci:
178170

@@ -295,11 +287,7 @@ fetch('/article/promise-chaining/user.json')
295287
});
296288
```
297289

298-
<<<<<<< HEAD
299-
Le code fonctionne, voir les commentaires sur les détails. Pourtant, il y a un problème potentiel, une erreur typique de ceux qui commencent à utiliser les promesses.
300-
=======
301-
The code works; see comments about the details. However, there's a potential problem in it, a typical error for those who begin to use promises.
302-
>>>>>>> 14e4e9f96bcc2bddc507f409eb4716ced897f91a
290+
Le code fonctionne ; voir les commentaires à propos des détails. Pourtant, il y a un problème potentiel, une erreur typique de ceux qui commencent à utiliser les promesses.
303291

304292
Regardez la ligne `(*)`: comment pouvons-nous faire quelque chose *après* l'avatar a fini d'afficher et d'être supprimé? Par exemple, nous aimerions montrer un formulaire pour éditer cet utilisateur ou autre chose. Pour l'instant, il n'y a pas moyen.
305293

@@ -331,19 +319,9 @@ fetch('/article/promise-chaining/user.json')
331319
.then(githubUser => alert(`Finished showing ${githubUser.name}`));
332320
```
333321

334-
<<<<<<< HEAD
335-
En d’autres termes, le gestionnaire `.then` à la ligne `(*)` renvoie `new Promise`, qui ne sera réglé qu’après l’appel de `resolve(githubUser)` dans `setTimeout` `(**)`.
322+
En d’autres termes, le gestionnaire `.then` à la ligne `(*)` renvoie `new Promise`, qui ne sera réglé qu’après l’appel de `resolve(githubUser)` dans `setTimeout` `(**)`. Le prochain `.then` dans la chaîne attendra cela.
336323

337-
Le prochain `.then` dans la chaîne attendra cela.
338-
339-
Comme bonne pratique, une action asynchrone doit toujours renvoyer une promesse.
340-
341-
Cela permet de planifier des actions après. Même si nous n'avons pas l'intention d'étendre la chaîne maintenant, nous en aurons peut-être besoin plus tard.
342-
=======
343-
That is, the `.then` handler in line `(*)` now returns `new Promise`, that becomes settled only after the call of `resolve(githubUser)` in `setTimeout` `(**)`. The next `.then` in the chain will wait for that.
344-
345-
As a good practice, an asynchronous action should always return a promise. That makes it possible to plan actions after it; even if we don't plan to extend the chain now, we may need it later.
346-
>>>>>>> 14e4e9f96bcc2bddc507f409eb4716ced897f91a
324+
Comme bonne pratique, une action asynchrone doit toujours renvoyer une promesse. Cela permet de planifier des actions après. Même si nous n'avons pas l'intention d'étendre la chaîne maintenant, nous en aurons peut-être besoin plus tard.
347325

348326
Enfin, nous pouvons scinder le code en fonctions réutilisables:
349327

0 commit comments

Comments
 (0)