Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
|
code_language:javascript [2025/11/02 15:29] 74.7.227.242 ancienne révision (2025/11/02 13:19) restaurée |
code_language:javascript [2025/11/02 15:51] (Version actuelle) 74.7.227.242 ancienne révision (2025/11/02 13:06) restaurée |
||
|---|---|---|---|
| Ligne 1677: | Ligne 1677: | ||
| " | " | ||
| + | |||
| + | === Async/Await === | ||
| + | " | ||
| + | <code JavaScript [enable_line_numbers=" | ||
| + | async function fonctionAsynchrone1() {/* code asynchrone */} | ||
| + | async function fonctionAsynchrone2() {/* code asynchrone */} | ||
| + | |||
| + | async function fonctionAsynchrone3() { | ||
| + | const value1 = await fonctionAsynchrone1(); | ||
| + | const value2 = await fonctionAsynchrone2(); | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Gerer des erreurs async/await | ||
| + | |||
| + | async/await utilisant les " | ||
| + | Pour intercepter cette erreur, par contre, il suffit d' | ||
| + | |||
| + | ==== Parallélisez plusieurs requêtes HTTP ==== | ||
| + | |||
| + | === Enchaînez des requêtes avec les callbacks === | ||
| + | On peut formuler plusieurs requêtes serveur en parallèle puis ensuite les suivre avec une requête en séquence avec les callbacks. | ||
| + | |||
| + | Pour cet exemple, nous partons du principe que nous avons accès à 2 fonctions (get et post). Elles font respectivement une requête " | ||
| + | * l'URL de la requête, | ||
| + | * Une callback à executer quand on a le résultat (avec une variable d' | ||
| + | |||
| + | |||
| + | <code JavaScript [enable_line_numbers=" | ||
| + | var GETRequestCount = 0; | ||
| + | var GETRequestResults = []; | ||
| + | |||
| + | function onGETRequestDone(err, | ||
| + | if (err) throw err; | ||
| + | | ||
| + | GETRequestCount++; | ||
| + | GETRequestResults.push(result); | ||
| + | | ||
| + | if (GETRequestCount == 2) { | ||
| + | post(url3, function(err, | ||
| + | if (err) throw err; | ||
| + | | ||
| + | // We are done here ! | ||
| + | }); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | get(url1, onGETRequestDone); | ||
| + | get(url2, onGETRequestDone); | ||
| + | </ | ||
| + | |||
| + | |||
| + | Afin d' | ||
| + | |||
| + | Par contre, nous voulons exécuter une requête " | ||
| + | |||
| + | " | ||
| + | |||
| + | === Enchaînez des requêtes avec les Promise === | ||
| + | |||
| + | Grâce à la fonction " | ||
| + | |||
| + | Pour cet exemple, nous partons du principe que nous avons accès à 2 fonctions ( " | ||
| + | |||
| + | <code JavaScript [enable_line_numbers=" | ||
| + | Promise.all([get(url1), | ||
| + | .then(function(results) { | ||
| + | return Promise.all([results, | ||
| + | }) | ||
| + | .then(function(allResults) { | ||
| + | // We are done here ! | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | Ici, nous utilisons la fonction " | ||
| + | |||
| + | Ainsi, la fonction " | ||
| + | |||
| + | Afin d' | ||
| + | |||
| + | Notez: | ||
| + | Notez que dans la fonction " | ||
| + | |||
| + | === Enchaînez des requêtes avec les async/await === | ||
| + | |||
| + | Finalement, voyons comment exécuter le même code mais avec async / await . | ||
| + | |||
| + | Pour cet exemple, nous partons du principe que nous avons accès à 2 fonctions ( " | ||
| + | |||
| + | <code JavaScript [enable_line_numbers=" | ||
| + | async function requests() { | ||
| + | var getResults = await Promise.all([get(url1), | ||
| + | var postResult = await post(url3); | ||
| + | return [getResults, | ||
| + | } | ||
| + | |||
| + | requests().then(function(allResults) { | ||
| + | // We are done here ! | ||
| + | }); | ||
| + | </ | ||
| + | |||
| + | Nous utilisons aussi la fonction " | ||
| + | |||
| + | Par contre, ici, nous utilisons " | ||
| + | |||
| + | Lorsque nous appelons la fonction " | ||
| + | |||
| + | ==== Optimisation du code ==== | ||
| + | |||
| + | === Linter, minifier, bundler, transpiler === | ||
| + | |||
| + | <code JavaScript [enable_line_numbers=" | ||
| + | |||
| + | </ | ||