You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Modifiez la fonction récursive `repeat()`, fournie plus bas dans la base de travail, de façon à ce qu’elle ne bloque pas la boucle événementielle (c’est-à-dire pour qu’elle laisse passer les timers et gestionnaires E/S). Il vous faudra nécessairement en faire une fonction asynchrone.
4
+
5
+
Un timeout sera déclenché après une seconde, qui affichera les résultats du test et terminara le processus. `repeat()` doit relâcher son contrôle sur la boucle événementielle de telle sorte que ce timeout puisse s’exécuter avant que 1500 millisecondes soient passées.
6
+
7
+
Essayez d’exécuter l’opération passée à `repeat()` autant de fois que possible avant le timeout !
8
+
9
+
## Conditions
10
+
11
+
* N’utilisez ni boucle (`for`, `while`…) ni `Array.prototype.forEach`
12
+
* Ne créez aucune fonction superflue
13
+
14
+
## Conseils
15
+
16
+
Si votre programme prend trop de temps à s’exécuter, vous avez probablement un souci. Utilisez Ctrl+C pour arrêter le processus Node.
Ajoutez des capacités à une méthode précise sur un objet, tout en préservant son comportement d’origine : créez un espion qui garde la trace du nombre de fois que la fonction a été appelée.
4
+
5
+
## Exemple
6
+
7
+
```js
8
+
var spy =Spy(console, 'error')
9
+
10
+
console.error('appel de console.error')
11
+
console.error('appel de console.error')
12
+
console.error('appel de console.error')
13
+
14
+
console.log(spy.count) // 3
15
+
```
16
+
17
+
## Arguments
18
+
19
+
*`target` : un objet contenant la méthode `method`.
20
+
*`method` : une `String` indiquant le nom de la méthode de `target` à espionner.
21
+
22
+
## Conditions
23
+
24
+
* N’utilisez ni boucle (`for`, `while`…) ni `Array.prototype.forEach`
25
+
* Ne créez aucune fonction superflue
26
+
27
+
## Conseils
28
+
29
+
Les fonctions ont un contexte (une valeur de `this`), une entrée (les arguments) et une sortie (la valeur de retour). Assurez vous que vous préservez tous ces aspects pour la fonction que vous espionnez.
0 commit comments