Avant de commencer, n’oubliez pas que la documentation de Javascript est disponible ici ou là. Nous utiliserons CodeSandbox, un environnement en ligne pour coder et exécuter du Javascript.
Exercice 1 : Comprendre les exceptions
En utilisant la fonction suivante sans la modifier :
- Regarder comment se comporte ce code lorsque l’exception est levée.
- Faites en sorte que le log
You're dead :(
s’affiche si l’exception est levée en utilisanttry {} catch(e) {}
. - Faites en sorte que le log
You survived :D
s’affiche si l’exception n’est pas levée en utilisant le mêmetry {} catch(e) {}
que précedemment.
function russianRoulette() {
if (Math.random() < 0.5) {
throw new Error("PAN");
}
}
russianRoulette()
Exercice 2 : Utiliser les promesses
Ecrire un script qui récupère 100 users via randomuser avec axios et qui les affichent.
⚠️ Attention à l’aspect asynchrone du code ! Mettez des logs un peu partout et regarder l’ordre d’affichage.
⚠️ N’oubliez pas d’ajouter la bibliothèque Axios
avec le bouton Add dependency
sur CodeSandbox ou via npm install --save axios
en local.
Exercice 3 : Utiliser les promesses
Ecrire un script qui récupère 100 users et qui affiche les users habitants en France. (Utiliser filter())
Exercice 4 : Utiliser les promesses
Ecrire un script qui récupère 100 users et qui stocke dans un second tableau uniquement le prénom et le nom ({firstname: "Julien", lastname: "Usson"}
)de tous les users dont le timezone est Paris. (Utiliser filter(), map() et forEach())
Exercice 5 : Transformer un callback en promesse
La fonction setTimeout() permet d’exécuter du code après x ms de façon asynchrone. Malheureusement, à l’époque de la création de cette fonction, les promesses n’existaient pas !
Créer une fonction wrappant setTimeout() dans une promesse puis écrire un programme qui affiche le dialogue suivant :
- Toc toc
**attendre 500 millisecondes**
- Qui est là?
**attendre 10 secondes**
- C'est Internet Explorer
- En utilisant setTimeout()
- En utilisant les promesses et votre nouvelle fonction
- En utilisant async/await et votre nouvelle fonction