Skip to content

Commit 1c08e1e

Browse files
committed
Conflict fixed on Promisification page in french language
1 parent 72306fc commit 1c08e1e

File tree

1 file changed

+18
-54
lines changed

1 file changed

+18
-54
lines changed

1-js/11-async/06-promisify/article.md

Lines changed: 18 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,9 @@
44

55
De telles transformations sont souvent nécessaires dans la vie réelle, car de nombreuses fonctions et bibliothèques sont basées sur des callback. Mais les promesses sont plus pratiques. Il est donc logique de les transformer.
66

7-
<<<<<<< HEAD
8-
Par exemple, nous avons `loadScript(src, callback)` du chapitre <info:callbacks>.
9-
=======
10-
For better understanding, let's see an example.
7+
Pour une meilleure compréhension, voyons un exemple.
118

12-
For instance, we have `loadScript(src, callback)` from the chapter <info:callbacks>.
13-
>>>>>>> 99e59ba611ab11319ef9d0d66734b0bea2c3f058
9+
Par exemple, nous avons `loadScript(src, callback)` du chapitre <info:callbacks>.
1410

1511
```js run
1612
function loadScript(src, callback) {
@@ -27,17 +23,13 @@ function loadScript(src, callback) {
2723
// loadScript('path/script.js', (err, script) => {...})
2824
```
2925

30-
<<<<<<< HEAD
31-
Transformons-le. La nouvelle fonction `loadScriptPromise(src)` fera de même, mais acceptera seulement `src` (pas de `callback`) et renverra une promesse.
32-
=======
33-
The function loads a script with the given `src`, and then calls `callback(err)` in case of an error, or `callback(null, script)` in case of successful loading. That's a widespread agreement for using callbacks, we saw it before.
26+
La fonction charge un script avec le `src` donné, puis appelle `callback(err)` en cas d'erreur, ou `callback (null, script) `en cas de chargement réussi. C'est un accord répandu pour l'utilisation des rappels, nous l'avons vu auparavant.
3427

35-
Let's promisify it.
28+
Promisifions le.
3629

37-
We'll make a new function `loadScriptPromise(src)`, that does the same (loads the script), but returns a promise instead of using callbacks.
30+
Nous allons créer une nouvelle fonction `loadScriptPromise(src)`, qui fait la même chose (charge le script), mais retourne une promesse au lieu d'utiliser des rappels.
3831

39-
In other words, we pass it only `src` (no `callback`) and get a promise in return, that resolves with `script` when the load is successful, and rejects with the error otherwise.
40-
>>>>>>> 99e59ba611ab11319ef9d0d66734b0bea2c3f058
32+
En d'autres termes, nous le transmettons uniquement `src` (pas de `callback`) et obtenons une promesse en retour, qui se résout avec `script` lorsque le chargement est réussi, et sinon rejette avec l'erreur.
4133

4234
Here it is:
4335
```js
@@ -54,35 +46,19 @@ let loadScriptPromise = function(src) {
5446
// loadScriptPromise('path/script.js').then(...)
5547
```
5648

57-
<<<<<<< HEAD
58-
Maintenant, `loadScriptPromise` s'intègre bien dans du code basé sur des promesses.
59-
60-
Comme nous pouvons le constater, elle délègue tout le travail au `loadScript` d'origine, en fournissant son propre rappel qui se traduit par la promesse de "résoudre/rejeter".
61-
62-
En pratique, nous aurons probablement besoin de promettre de nombreuses fonctions. Il est donc logique d'utiliser une fonction assistante. Nous l'appellerons `promisify(f)` : elle accepte une fonction à transformer `f` et renvoie une fonction wrapper.
63-
64-
Ce wrapper fait la même chose que dans le code ci-dessus: renvoie une promesse et passe l'appel au `f` d'origine, en suivant le résultat dans un rappel personnalisé:
65-
66-
```js
67-
function promisify(f) {
68-
return function (...args) { // renvoie une fonction wrapper
69-
return new Promise((resolve, reject) => {
70-
function callback(err, result) { // notre rappel personnalisé pour f
71-
=======
72-
As we can see, the new function is a wrapper around the original `loadScript` function. It calls it providing its own callback that translates to promise `resolve/reject`.
49+
Comme nous pouvons le voir, la nouvelle fonction est un wrapper autour de la fonction originale `loadScript`. Il l'appelle en fournissant son propre rappel qui se traduit par la promesse de `resolve/reject`.
7350

74-
Now `loadScriptPromise` fits well in promise-based code. If we like promises more than callbacks (and soon we'll see more reasons for that), then we will use it instead.
51+
Dorénavant `loadScriptPromise` s'intègre bien dans le code basé sur la promesse. Si nous aimons les promesses plus que les rappels (et bientôt nous verrons plus de raisons à cela), alors nous les utiliserons à la place.
7552

76-
In practice we may need to promisify more than one function, so it makes sense to use a helper.
53+
Dans la pratique, nous pouvons avoir besoin de promettre plus d'une fonction, il est donc logique d'utiliser un assistant.
7754

78-
We'll call it `promisify(f)`: it accepts a to-promisify function `f` and returns a wrapper function.
55+
Nous l'appellerons `promisify (f)` : il accepte une fonction à promettre `f` et renvoie une fonction wrapper.
7956

8057
```js
8158
function promisify(f) {
8259
return function (...args) { // return a wrapper-function (*)
8360
return new Promise((resolve, reject) => {
8461
function callback(err, result) { // our custom callback for f (**)
85-
>>>>>>> 99e59ba611ab11319ef9d0d66734b0bea2c3f058
8662
if (err) {
8763
reject(err);
8864
} else {
@@ -102,26 +78,18 @@ let loadScriptPromise = promisify(loadScript);
10278
loadScriptPromise(...).then(...);
10379
```
10480

105-
<<<<<<< HEAD
106-
Nous supposons ici que la fonction d'origine attend un rappel avec deux arguments `(err, result)`. C'est ce que nous rencontrons le plus souvent. Ensuite, notre rappel personnalisé est exactement au bon format et `promisify` convient parfaitement à un tel cas.
107-
=======
108-
The code may look a bit complex, but it's essentially the same that we wrote above, while promisifying `loadScript` function.
81+
Le code peut sembler un peu complexe, mais c'est essentiellement le même que celui que nous avons écrit ci-dessus, tout en promettant la fonction `loadScript`.
10982

110-
A call to `promisify(f)` returns a wrapper around `f` `(*)`. That wrapper returns a promise and forwards the call to the original `f`, tracking the result in the custom callback `(**)`.
83+
Un appel à `promisify(f)` retourne un wrapper autour de `f` `(*)`. Ce wrapper renvoie une promesse et transmet l'appel au `f` d'origine, en suivant le résultat dans le rappel personnalisé `(**)`.
11184

112-
Here, `promisify` assumes that the original function expects a callback with exactly two arguments `(err, result)`. That's what we encounter most often. Then our custom callback is in exactly the right format, and `promisify` works great for such a case.
113-
>>>>>>> 99e59ba611ab11319ef9d0d66734b0bea2c3f058
85+
Ici, `promisify` suppose que la fonction d'origine attend un rappel avec exactement deux arguments `(err, result) `. C'est ce que nous rencontrons le plus souvent. Ensuite, notre rappel personnalisé est exactement dans le bon format, et `promisify` fonctionne très bien dans un tel cas.
11486

11587
Mais que se passe-t-il si le `f` original attend un rappel avec plus d'arguments `callback(err, res1, res2, ...)`?
11688

117-
<<<<<<< HEAD
118-
Voici une version plus avancée de `promisify`: si elle est appelée par `promisify(f, true)`, le résultat de la promesse sera un tableau de résultats de rappel `[res1, res2, ...]`:
119-
=======
120-
We can improve our helper. Let's make a more advanced version of `promisify`.
89+
Nous pouvons améliorer notre helper. Faisons une version plus avancée de `promisify`.
12190

122-
- When called as `promisify(f)` it should work similar to the version above.
123-
- When called as `promisify(f, true)`, it should return the promise that resolves with the array of callback results. That's exactly for callbacks with many arguments.
124-
>>>>>>> 99e59ba611ab11319ef9d0d66734b0bea2c3f058
91+
- Lorsqu'il est appelé en tant que `promisify(f)`, il devrait fonctionner de la même manière que la version ci-dessus.
92+
- Lorsqu'il est appelé en tant que `promisify(f, true)`, il doit retourner la promesse qui se résout avec le tableau des résultats de rappel. C'est exactement pour les rappels avec de nombreux arguments.
12593

12694
```js
12795
// promisify(f, true) pour obtenir un tableau de résultats
@@ -149,13 +117,9 @@ f = promisify(f, true);
149117
f(...).then(arrayOfResults => ..., err => ...);
150118
```
151119
152-
<<<<<<< HEAD
153-
Pour des formats de rappel plus exotiques, comme ceux sans `err` : `callback(result)`, nous pouvons transformer de telles fonctions manuellement, sans utiliser la fonction assistante.
154-
=======
155-
As you can see it's essentially the same as above, but `resolve` is called with only one or all arguments depending on whether `manyArgs` is truthy.
120+
Comme vous pouvez le voir, c'est essentiellement la même chose que ci-dessus, mais `resolve` est appelé avec un seul ou tous les arguments selon que `manyArgs` est vrai.
156121
157-
For more exotic callback formats, like those without `err` at all: `callback(result)`, we can promisify such functions manually without using the helper.
158-
>>>>>>> 99e59ba611ab11319ef9d0d66734b0bea2c3f058
122+
Pour des formats de rappel plus exotiques, comme ceux sans `err` : `callback(result)`, nous pouvons promettre de telles fonctions manuellement sans utiliser l'assistant.
159123
160124
Il existe également des modules avec des fonctions de promisification un peu plus flexibles, e.g. [es6-promisify](https://github.com/digitaldesignlabs/es6-promisify). Dans Node.js, il existe une fonction intégrée `util.promisify` pour cela.
161125

0 commit comments

Comments
 (0)