You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: 1-js/11-async/01-callbacks/article.md
+2-23Lines changed: 2 additions & 23 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -196,15 +196,9 @@ Ainsi, la fonction unique `callback` est utilisée à la fois pour signaler les
196
196
197
197
## Pyramide du malheur
198
198
199
-
<<<<<<< HEAD
200
199
À première vue, il s'agit d'un moyen viable de codage asynchrone. Et c'est effectivement le cas. Pour un ou peut-être deux appels imbriqués, cela semble correct.
201
200
202
201
Mais pour de multiples actions asynchrones qui se succèdent, nous aurons un code comme celui-ci:
203
-
=======
204
-
At first glance, it looks like a viable approach to asynchronous coding. And indeed it is. For one or maybe two nested calls it looks fine.
205
-
206
-
But for multiple asynchronous actions that follow one after another, we'll have code like this:
1. Nous chargeons `1.js`, puis s'il n'y a pas d'erreur.
240
-
2. Nous chargeons `2.js`, puis s'il n'y a pas d'erreur.
232
+
1. Nous chargeons `1.js`, puis s'il n'y a pas d'erreur …
233
+
2. Nous chargeons `2.js`, puis s'il n'y a pas d'erreur …
241
234
3. Nous chargeons `3.js`, puis s'il n'y a pas d'erreur -- fait autre chose `(*)`.
242
-
=======
243
-
In the code above:
244
-
1. We load `1.js`, then if there's no error...
245
-
2. We load `2.js`, then if there's no error...
246
-
3. We load `3.js`, then if there's no error -- do something else `(*)`.
247
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
248
235
249
236
Au fur et à mesure que les appels deviennent plus imbriqués, le code devient plus profond et de plus en plus difficile à gérer, surtout si nous avons du vrai code au lieu de `...` qui peut inclure plus de boucles, des déclarations conditionnelles et ainsi de suite.
250
237
@@ -312,20 +299,12 @@ function step3(error, script) {
312
299
}
313
300
```
314
301
315
-
<<<<<<< HEAD
316
302
Vous voyez ? Il fait la même chose, et il n'y a pas d'imbrication profonde maintenant parce que nous avons fait de chaque action une fonction séparée de haut niveau.
317
-
=======
318
-
See? It does the same thing, and there's no deep nesting now because we made every action a separate top-level function.
319
-
>>>>>>> 71da17e5960f1c76aad0d04d21f10bc65318d3f6
320
303
321
304
Cela fonctionne, mais le code ressemble à une feuille de calcul déchirée. Il est difficile à lire, et vous avez probablement remarqué qu'il faut passer d'un morceau à l'autre en le lisant. Ce n'est pas pratique, surtout si le lecteur n'est pas familier avec le code et ne sait pas où sauter du regard.
322
305
323
306
De plus, les fonctions nommées `step*` sont toutes à usage unique, elles sont créées uniquement pour éviter la "pyramide du malheur". Personne ne va les réutiliser en dehors de la chaîne d'action. Il y a donc un peu d'encombrement de l'espace de noms ici.
324
307
325
308
Nous aimerions avoir quelque chose de mieux.
326
309
327
-
<<<<<<< HEAD
328
310
Heureusement, il existe d'autres moyens d'éviter de telles pyramides. L'un des meilleurs moyens est d'utiliser des "promesses", décrites dans le chapitre suivant.
329
-
=======
330
-
Luckily, there are other ways to avoid such pyramids. One of the best ways is to use "promises", described in the next chapter.
0 commit comments