Skip to content

Commit 5aeef42

Browse files
committed
Conflicts fixed on "Promise" page in french language
1 parent f41e3b5 commit 5aeef42

File tree

1 file changed

+30
-103
lines changed

1 file changed

+30
-103
lines changed

1-js/11-async/02-promise-basics/article.md

Lines changed: 30 additions & 103 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,8 @@ Donc, pour résumer : l'exécuteur s'exécute automatiquement et tente d’effec
3535

3636
L'objet `promise` retourné par le constructeur `new Promise` a des propriétés internes :
3737

38-
<<<<<<< HEAD
3938
- `state` (état) - initiallement à `"pending"` (en attente), se change soit en `"fulfilled"` (tenue) lorsque `resolve` est appelé ou `"rejected"` (rompue) si `reject` est appelé.
4039
- `result` - initialement à `undefined` se change à `value` quand `resolve(value)` est appelé ou `error` quand `reject(error)` est appelé.
41-
=======
42-
- `state` — initially `"pending"`, then changes to either `"fulfilled"` when `resolve` is called or `"rejected"` when `reject` is called.
43-
- `result` — initially `undefined`, then changes to `value` when `resolve(value)` is called or `error` when `reject(error)` is called.
44-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
4540

4641
Ainsi l'éxécuteur changera la promesse à un de ces états :
4742

@@ -64,14 +59,7 @@ On peut voir deux chose en lançant le code ci-dessus :
6459
1. L'exécuteur est appelé automatiquement et immédiatement (avec `new Promise`).
6560
2. L'exécuteur reçoit deux arguments : `resolve` et `reject` - ces deux fonctions sont pré-définies par le moteur Javascript, ainsi nous n'avons pas besoin de les créer. Nous devons seulement appelé l'une ou l'autre quand le résultat est prêt.
6661

67-
<<<<<<< HEAD
6862
Après une seconde de "traitement" l'exécuteur appelle `resolve("done")` pour produire le résultat. Cela change l'état de l'objet `promise` :
69-
=======
70-
1. The executor is called automatically and immediately (by `new Promise`).
71-
2. The executor receives two arguments: `resolve` and `reject`. These functions are pre-defined by the JavaScript engine, so we don't need to create them. We should only call one of them when ready.
72-
73-
After one second of "processing", the executor calls `resolve("done")` to produce the result. This changes the state of the `promise` object:
74-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
7563

7664
![](promise-resolve-1.svg)
7765

@@ -138,15 +126,9 @@ Pas de soucis. Nous acquittons immédiatement la promesse.
138126
Les propriétés `state` et `result` de l'objet `Promise` sont internes. Nous ne pouvons directement accéder à celles-ci. Nous pouvons utiliser `.then`/`.catch`/`.finally` pour cela. Elles sont décrites ci-dessous.
139127
```
140128
141-
<<<<<<< HEAD
142-
## Les consommateurs: then, catch, finally
143-
144-
Un objet promesse permet le lien entre l'exécuteur (le "code produit" ou "chanteur") et les fonctions consommatrices (les "fans"), lesquels recevront un résultat ou une erreur. Ces fonctions peuvent s'abonner (subscribed) utilisant les méthodes `.then`, `.catch` and `.finally`.
145-
=======
146-
## Consumers: then, catch
129+
## Les consommateurs : then, catch
147130
148-
A Promise object serves as a link between the executor (the "producing code" or "singer") and the consuming functions (the "fans"), which will receive the result or error. Consuming functions can be registered (subscribed) using the methods `.then` and `.catch`.
149-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
131+
Un objet promesse permet le lien entre l'exécuteur (le "code produit" ou "chanteur") et les fonctions consommatrices (les "fans"), lesquels recevront un résultat ou une erreur. Ces fonctions consommatrices peuvent s'abonner (subscribed) utilisant les méthodes `.then`, `.catch`.
150132
151133
### then (alors)
152134
@@ -161,15 +143,9 @@ promise.then(
161143
);
162144
```
163145
164-
<<<<<<< HEAD
165146
Le premier argument de `.then` est une fonction qui se lance si la promesse est tenue, et reçoit le résultat.
166147
167148
Le deuxième argument de `.then` est une fonction qui se lance si la promesse est rompue, et reçoit l'erreur.
168-
=======
169-
The first argument of `.then` is a function that runs when the promise is resolved and receives the result.
170-
171-
The second argument of `.then` is a function that runs when the promise is rejected and receives the error.
172-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
173149
174150
Par exemple, voyons la réponse à un une requête correctement tenue :
175151
@@ -237,120 +213,79 @@ L'appel à `.catch(f)` est complétement analogue à `.then(null, f)`, c'est jus
237213
238214
Comme il y a un terme `finally` dans un `try {...} catch {...}`, il y a des `finally` dans les promesses.
239215
240-
<<<<<<< HEAD
241216
L'appel à `.finally(f)` est similaire à `.then(f, f)` dans le sens où `f` se lance toujours quand la promesse est aquittée : qu'elle soit tenue ou rompue.
242217
243-
`finally` est un bon moyen pour nettoyer, i.e arrêter un indicateur de chargement, car ils ne sont plus utiles, qu'importe le résultat.
244-
245-
Comme cela :
246-
247-
```js
248-
new Promise((resolve, reject) => {
249-
/* faire quelque chose qui prend du temps puis lancer resolve/reject */
250-
=======
251-
The call `.finally(f)` is similar to `.then(f, f)` in the sense that `f` runs always, when the promise is settled: be it resolve or reject.
252-
253-
The idea of `finally` is to set up a handler for performing cleanup/finalizing after the previous operations are complete.
218+
L'idée de `finally` est de configurer un gestionnaire pour effectuer le nettoyage/la finalisation une fois les opérations précédentes terminées.
254219
255-
E.g. stopping loading indicators, closing no longer needed connections, etc.
220+
Par exemple l'arrêt des voyants de charge, la fermeture des connexions devenues inutiles, etc.
256221
257-
Think of it as a party finisher. No matter was a party good or bad, how many friends were in it, we still need (or at least should) do a cleanup after it.
222+
Considérez-le comme un nettoyeur de fête. Peu importe qu'une fête soit bonne ou mauvaise, combien d'amis y participaient, nous devons toujours (ou du moins devrions) faire un nettoyage après.
258223
259-
The code may look like this:
224+
Le code peut ressembler à ceci :
260225
261226
```js
262227
new Promise((resolve, reject) => {
263-
/* do something that takes time, and then call resolve or maybe reject */
264-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
228+
/* faire quelque chose qui prend du temps, puis appeler resolve ou peut-être reject */
265229
})
266230
*!*
267231
// se lance quand la promesse est acquittée, peu importe si celle-ci est tenue ou rompue
268232
.finally(() => stop loading indicator)
269-
// so the loading indicator is always stopped before we go on
233+
// donc l'indicateur de chargement est toujours arrêté avant de continuer
270234
*/!*
271235
.then(result => show result, err => show error)
272236
```
273237
274-
<<<<<<< HEAD
275-
Cela dit, `finally(f)` n'est pas exactement un alias de `then(f,f)`. Il existe quelques différences subtiles :
276-
277-
1. Un gestionnaire `finally` ne prends pas d'arguments. Dans un `finally` nous ne savons pas si la promesse est tenue ou rompue. Cela ne pose pas de soucis, notre tâche est habituellement de réaliser les procédures finales "générales".
278-
2. Un gestionnaire `finally` passe le résultat ou l'erreur au gestionnaire suivant.
279-
280-
Par exemple, le résultat passant à travers `finally` vers `then` :
281-
=======
282-
Please note that `finally(f)` isn't exactly an alias of `then(f,f)` though.
238+
Veuillez noter que `finally(f)` n'est pas exactement un alias de `then(f,f)`.
283239
284-
There are important differences:
240+
Il existe des différences importantes :
285241
286-
1. A `finally` handler has no arguments. In `finally` we don't know whether the promise is successful or not. That's all right, as our task is usually to perform "general" finalizing procedures.
242+
1. Un gestionnaire `finally` n'a pas d'arguments. Dans `finally` nous ne savons pas si la promesse est réussie ou non. Ce n'est pas grave, car notre tâche consiste généralement à effectuer des procédures de finalisation "générales".
287243
288-
Please take a look at the example above: as you can see, the `finally` handler has no arguments, and the promise outcome is handled by the next handler.
289-
2. A `finally` handler "passes through" the result or error to the next suitable handler.
244+
Veuillez jeter un coup d'œil à l'exemple ci-dessus : comme vous pouvez le voir, le gestionnaire "finally" n'a pas d'arguments et le résultat de la promesse est géré par le gestionnaire suivant.
245+
2. Un gestionnaire "finally" "transmet" le résultat ou l'erreur au prochain gestionnaire approprié.
290246
291-
For instance, here the result is passed through `finally` to `then`:
247+
Par exemple, ici, le résultat est passé de `finally` à `then` :
292248
293-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
294249
```js run
295250
new Promise((resolve, reject) => {
296251
setTimeout(() => resolve("value"), 2000);
297252
})
298-
<<<<<<< HEAD
299-
.finally(() => alert("Promise ready"))
300-
.then(result => alert(result)); // <-- .then gère le résultat
301-
```
302-
Et là avec une erreur dans la promesse, passsant à travers `finally` vers `catch` :
303-
=======
304253
.finally(() => alert("Promise ready")) // triggers first
305254
.then(result => alert(result)); // <-- .then shows "value"
306255
```
307256
308-
As you can see, the `value` returned by the first promise is passed through `finally` to the next `then`.
257+
Comme vous pouvez le voir, la `value` renvoyée par la première promesse est transmise par `finally` au prochain `then`.
309258
310-
That's very convenient, because `finally` is not meant to process a promise result. As said, it's a place to do generic cleanup, no matter what the outcome was.
259+
C'est très pratique, car `finaly` n'est pas destiné à traiter un résultat de promesse. Comme dit, c'est un endroit pour faire un nettoyage générique, quel que soit le résultat.
311260
312-
And here's an example of an error, for us to see how it's passed through `finally` to `catch`:
313-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
261+
Et voici un exemple d'erreur, pour que nous puissions voir comment elle est passée de `finally` à `catch` :
314262
315263
```js run
316264
new Promise((resolve, reject) => {
317265
throw new Error("error");
318266
})
319-
<<<<<<< HEAD
320-
.finally(() => alert("Promise ready"))
321-
.catch(err => alert(err)); // <-- .catch gère l'objet error
322-
```
323-
324-
Cela est vraiment pratique, en effet `finally` n'est pas censer gérer le résultat d'une promesse. Donc il passe à travers.
325-
326-
Nous parlerons plus en détails de l'enchaînements de promesses et le passage de résultats à travers les gestionnaires dans le prochain chapitre.
327-
328-
````smart header="Nous pouvons attacher des gestionnaires à des promesses configurées"
329-
Si une promesse est en attente, les gestionnaires `.then/catch/finally` l'attendent. Sinon, si une promesse est déjà configurée, ils exécutent simplement :
330-
=======
331267
.finally(() => alert("Promise ready")) // triggers first
332268
.catch(err => alert(err)); // <-- .catch shows the error
333269
```
334270
335-
3. A `finally` handler also shouldn't return anything. If it does, the returned value is silently ignored.
271+
3. Un gestionnaire `finally` ne devrait pas non plus renvoyer quoi que ce soit. Si c'est le cas, la valeur renvoyée est silencieusement ignorée.
336272
337-
The only exception to this rule is when a `finally` handler throws an error. Then this error goes to the next handler, instead of any previous outcome.
273+
La seule exception à cette règle est lorsqu'un gestionnaire `finally` génère une erreur. Ensuite, cette erreur passe au gestionnaire suivant, au lieu de tout résultat précédent.
338274
339-
To summarize:
275+
Pour résumer :
340276
341-
- A `finally` handler doesn't get the outcome of the previous handler (it has no arguments). This outcome is passed through instead, to the next suitable handler.
342-
- If a `finally` handler returns something, it's ignored.
343-
- When `finally` throws an error, then the execution goes to the nearest error handler.
277+
- Un gestionnaire `finally` n'obtient pas le résultat du gestionnaire précédent (il n'a pas d'arguments). Ce résultat est transmis à la place au prochain gestionnaire approprié.
278+
- Si un gestionnaire `finally` renvoie quelque chose, il est ignoré.
279+
- Lorsque `finally` génère une erreur, l'exécution passe au gestionnaire d'erreurs le plus proche.
344280
345-
These features are helpful and make things work just the right way if we use `finally` how it's supposed to be used: for generic cleanup procedures.
281+
Ces fonctionnalités sont utiles et permettent aux choses de fonctionner correctement si nous utilisons `finally` comme elles sont censées être utilisées : pour les procédures de nettoyage génériques.
346282
347-
````smart header="We can attach handlers to settled promises"
348-
If a promise is pending, `.then/catch/finally` handlers wait for its outcome.
283+
````smart header="Nous pouvons attacher des gestionnaires aux promesses réglées"
284+
Si une promesse est en attente, les gestionnaires `.then/catch/finally` attendent son résultat.
349285
350-
Sometimes, it might be that a promise is already settled when we add a handler to it.
286+
Parfois, il se peut qu'une promesse soit déjà réglée lorsque nous y ajoutons un gestionnaire.
351287
352-
In such case, these handlers just run immediately:
353-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
288+
Dans ce cas, ces gestionnaires s'exécutent immédiatement :
354289
355290
```js run
356291
// la prommesse est acquittée immédiatement à la création
@@ -364,19 +299,11 @@ Notez que cela rend les promesses plus puissantes que le scénario réel de "lis
364299
Les promesses sont plus flexibles. Nous pouvons ajouter des gestionnaires à tout moment : si le résultat est déjà là, ils s'exécutent simplement.
365300
````
366301

367-
<<<<<<< HEAD
368-
Ensuite, voyons des exemples plus pratiques pour lesquels les promesses nous aident à écrire du code asynchrone.
369-
370302
## Example: loadScript [#loadscript]
371303

372-
Nous avons la fonction `loadScript` pour charger un script d'un chapitre précédent.
373-
=======
374-
## Example: loadScript [#loadscript]
375-
376-
Next, let's see more practical examples of how promises can help us write asynchronous code.
304+
Ensuite, voyons des exemples plus pratiques pour lesquels les promesses nous aident à écrire du code asynchrone.
377305

378-
We've got the `loadScript` function for loading a script from the previous chapter.
379-
>>>>>>> bf7d8bb1af3b416d393af1c15b03cb1352da1f9c
306+
Nous avons la fonction `loadScript` pour charger un script du chapitre précédent.
380307

381308
Pour rappel voyons la solution avec des fonctions de retour :
382309

0 commit comments

Comments
 (0)