Par Valentin Brosseau / @c4software

100% en JS
Le JS pour réaliser des applications
Réaliser un serveur en JS
Une nouvelle version de la norme chaque année (ES2015, ES2020, ES2024, …)
Beaucoup de différences… Donc attention au support !
Pour connaître la compatibilité
Pouvez-vous me dire à quoi ça correspond ?
let resultat = ""; ajax("http://api/getRandom", (randomValue) => { resultat = randomValue; }); console.log(resultat);
let resultat = ""; ajax("http://api/getRandom", (randomValue) => { resultat = randomValue; }); console.log(resultat);
let resultat = ""; ajax("http://api/getRandom", (randomValue) => { resultat = randomValue; }); console.log(resultat);
let resultat = ""; ajax("http://api/getRandom", (randomValue) => { resultat = randomValue; }); console.log(resultat);
console.log() ?les dev toolsVotre navigateur est puissant ! Découvrons quelques-unes des fonctionnalités.




Le but : Rendre le code plus lisible.

« De base », cette notation est ignorée par le navigateur, mais l'activation est simple.

La manipulation des tableaux est maintenant simplifiée et performante.


Est-ce valide ?
Mais non, le mieux pour ça, on utilise un forEach

Quelle est l'autre écriture du forEach ?


Comme les tableaux, les objets sont maintenant manipulables plus simplement.
new existe.class.méthodes.

Une « librairie / fonction / méthode » simple permettant de faire de l'Ajax intégrée


then?
L'objet Promise (pour « promesse ») est utilisé pour réaliser des traitements de façon asynchrone. Une promesse représente une valeur qui peut être disponible maintenant, dans le futur voire jamais.
Pour faire « simple », ça remplace les callback et évite les callback hell.
Exécuté en cas de réussite.
Exécuté en cas d'échec (Erreur, Throw, …).
Promise.all() est un outil de composition qui permet de mener des opérations asynchrones en parallèle.
Promise
.all([promesse1(), promesse2(), promesse3()])
.then(([resultat1, resultat2, resultat3]) => {
// Code
});Appelée dans tous les cas de terminaison (réussite comme échec).
Pratique pour masquer un indicateur de chargement par exemple.
Le but des fonctions async/await est de simplifier l'utilisation synchrone des promesses et d'opérer sur des groupes de promesses. De la même façon que les promesses sont semblables à des callbacks structurés, async/await est semblable à la combinaison des générateurs et des promesses.
Async / Await permet de rendre « synchrone » du code asynchrone.
Mais maintenant… nous avons ViteJS 🎉
let / const, string templates, modules.map, filter, forEach).async / await.Place au TP 🚀