Skip to content

Commit df28b99

Browse files
committed
Translates Promisification into French
1 parent de271c6 commit df28b99

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

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

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
# Promisification
22

3-
Promisification -- is a long word for a simple transform. It's conversion of a function that accepts a callback into a function returning a promise.
3+
La promisification represente une simple transformation. Il s'agit de la conversion d'une fonction qui accepte une fonction de rappel ("callback") en une fonction renvoyant une promesse.
44

5-
Such transforms are often needed in real-life, as many functions and libraries are callback-based. But promises are more convenient. So it makes sense to promisify those.
5+
De telles transformations sont souvent nécessaires dans la vie réelle, car de nombreuses fonctions et bibliothèques sont basées sur des rappels. Mais les promesses sont plus pratiques. Il est donc logique de les transformer.
66

7-
For instance, we have `loadScript(src, callback)` from the chapter <info:callbacks>.
7+
Par exemple, nous avons `loadScript(src, callback)` du chapitre <info:callbacks>.
88

99
```js run
1010
function loadScript(src, callback) {
@@ -21,7 +21,7 @@ function loadScript(src, callback) {
2121
// loadScript('path/script.js', (err, script) => {...})
2222
```
2323

24-
Let's promisify it. The new `loadScriptPromise(src)` function will do the same, but accept only `src` (no `callback`) and return a promise.
24+
Transformons-le. La nouvelle fonction `loadScriptPromise(src)` fera de même, mais acceptera seulement `src` (pas de `callback`) et renverra une promesse.
2525

2626
```js
2727
let loadScriptPromise = function(src) {
@@ -37,31 +37,31 @@ let loadScriptPromise = function(src) {
3737
// loadScriptPromise('path/script.js').then(...)
3838
```
3939

40-
Now `loadScriptPromise` fits well in promise-based code.
40+
Maintenant, `loadScriptPromise` s'intègre bien dans du code basé sur des promesses.
4141

42-
As we can see, it delegates all the work to the original `loadScript`, providing its own callback that translates to promise `resolve/reject`.
42+
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".
4343

44-
In practice we'll probably need to promisify many functions, it makes sense to use a helper.
44+
En pratique, nous aurons probablement besoin de promettre de nombreuses fonctions. Il est donc logique d'utiliser une fonction assistante.
4545

46-
We'll call it `promisify(f)`: it accepts a to-promisify function `f` and returns a wrapper function.
46+
Nous l'appellerons `promisify(f)`: elle accepte une fonction à tronsformer `f` et renvoie une fonction wrapper.
4747

48-
That wrapper does the same as in the code above: returns a promise and passes the call to the original `f`, tracking the result in a custom callback:
48+
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é:
4949

5050
```js
5151
function promisify(f) {
52-
return function (...args) { // return a wrapper-function
52+
return function (...args) { // renvoie une fonction wrapper
5353
return new Promise((resolve, reject) => {
54-
function callback(err, result) { // our custom callback for f
54+
function callback(err, result) { // notre rappel personnalisé pour f
5555
if (err) {
5656
return reject(err);
5757
} else {
5858
resolve(result);
5959
}
6060
}
6161

62-
args.push(callback); // append our custom callback to the end of f arguments
62+
args.push(callback); // ajoute notre rappel personnalisé à la fin des arguments de f
6363

64-
f.call(this, ...args); // call the original function
64+
f.call(this, ...args); // appeler la fonction d'origine
6565
});
6666
};
6767
};
@@ -71,22 +71,22 @@ let loadScriptPromise = promisify(loadScript);
7171
loadScriptPromise(...).then(...);
7272
```
7373

74-
Here we assume that the original function expects a callback with 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.
74+
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.
7575

76-
But what if the original `f` expects a callback with more arguments `callback(err, res1, res2, ...)`?
76+
Mais que se passe-t-il si le `f` original attend un rappel avec plus d'arguments `callback(err, res1, res2, ...)`?
7777

78-
Here's a more advanced version of `promisify`: if called as `promisify(f, true)`, the promise result will be an array of callback results `[res1, res2, ...]`:
78+
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, ...]`:
7979

8080
```js
81-
// promisify(f, true) to get array of results
81+
// promisify(f, true) pour obtenir un tableau de résultats
8282
function promisify(f, manyArgs = false) {
8383
return function (...args) {
8484
return new Promise((resolve, reject) => {
85-
function *!*callback(err, ...results*/!*) { // our custom callback for f
85+
function *!*callback(err, ...results*/!*) { // notre rappel personnalisé pour f
8686
if (err) {
8787
return reject(err);
8888
} else {
89-
// resolve with all callback results if manyArgs is specified
89+
// résoudre avec tous les résultats de rappel si manyArgs est spécifié
9090
*!*resolve(manyArgs ? results : results[0]);*/!*
9191
}
9292
}
@@ -103,14 +103,14 @@ f = promisify(f, true);
103103
f(...).then(arrayOfResults => ..., err => ...)
104104
```
105105
106-
For more exotic callback formats, like those without `err` at all: `callback(result)`, we can promisify such functions without using the helper, manually.
106+
Pour des formats de rappel plus exotiques, comme ceux sans `err`: `callback(résultat)`, nous pouvons transformer de telles fonctions manuellement, sans utiliser la fonction assistante.
107107
108-
There are also modules with a bit more flexible promisification functions, e.g. [es6-promisify](https://github.com/digitaldesignlabs/es6-promisify). In Node.js, there's a built-in `util.promisify` function for that.
108+
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.
109109
110110
```smart
111-
Promisification is a great approach, especially when you use `async/await` (see the next chapter), but not a total replacement for callbacks.
111+
La promisification est une excellente approche, surtout lorsque vous utilisez `async/wait` (voir le chapitre suivant), mais ne remplace pas totalement les rappels.
112112

113-
Remember, a promise may have only one result, but a callback may technically be called many times.
113+
N'oubliez pas qu'une promesse peut avoir un seul résultat, mais un rappel peut techniquement être appelé plusieurs fois.
114114

115-
So promisification is only meant for functions that call the callback once. Further calls will be ignored.
115+
La promisification ne concerne donc que les fonctions qui appellent le rappel une fois. D'autres appels seront ignorés.
116116
```

0 commit comments

Comments
 (0)