Sobes.tech

Frontend

/** * Il est nécessaire d'écrire une fonction asynchrone, * qui "dormira" pendant le nombre de millisecondes spécifié, * puis se terminera avec succès * / function sleep(duration) { } // Exemple const startTime = Date.now(); console.log("début du sommeil..."); sleep(2000).then(() => { console.log("Réveillé après 2 secondes!"); console.log("Temps écoulé: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Réveillé après 1 seconde!"); console.log("Temps écoulé: ", Date.now() - startTime); });

139

Pour chacun des trois fragments de code JavaScript, déterminez ce qui sera affiché dans la console et expliquez les différences de comportement entre les primitives, les objets et les réaffectations de références.

139

Y a-t-il des problèmes pour ajouter de nouvelles méthodes aux prototypes d'objets intégrés?

139

Pourquoi le méthode apply pourrait-il être nécessaire dans la solution runOnce?

137

/** * Implémenter la fonction sumPromises, qui prend * en argument des promesses et retourne la somme * de leurs résultats. * * La fonction peut prendre un nombre quelconque d'arguments. * Vous pouvez utiliser n'importe quelle API de promesses. */ // Code ici // Exemple d'utilisation const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

136

/** * La fonction `asyncAuth(callback)` accepte un callback, dans lequel on peut * passer une erreur (premier argument) et des données * du backend (deuxième argument). * asyncAuth((error, data) => {}); * * Vous devez implémenter la fonction `auth()`, * qui appelle `asyncAuth()`, mais retourne une promesse. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * La fonction `tryAuth()` utilise `auth()` et, en cas d'erreur, * effectue N tentatives supplémentaires. * Si toutes échouent, elle retourne la dernière erreur. * * @returns {Promise} */ function tryAuth(n) { }

135

[nom] a demandé : Combien de temps a-t-il fallu pour mettre en œuvre la version MVP du lecteur ?

135

/* Il est nécessaire d'écrire une fonction pour calculer la somme de toutes les valeurs numériques dans un tableau. Les valeurs numériques valides sont également des chaînes, qui commencent par des chiffres. Dans ce cas, il faut utiliser cette séquence initiale de chiffres comme valeur numérique. Le tableau peut contenir tous types de données et ne pas être plat. **Il ne faut pas utiliser de méthodes intégrées comme .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

134

/** * Implémenter la fonction wrapper runOnce, qui prend * une fonction et retourne une nouvelle fonction. La nouvelle * fonction ne peut être appelée qu'une seule fois, toutes * les appels suivants retournent undefined. * * La fonction enveloppée peut accepter des arguments * et retourner un résultat. */ function runOnce(fn) { // votre code } const logHello = (name) => { console.log(`bonjour, ${name} !`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'bonjour, Oleg!' logHelloOnce('Olga'); // undefined

134

Comment convertir arguments en un tableau de l'ancienne manière (ES5), sans Array.from ni opérateur de déploiement ?

130

Quelles nouveautés de la norme ES6 sont utilisées dans le code écrit ? Qu'est-ce que l'objet arguments et en quoi diffère-t-il des paramètres rest ?

130

/** * Trois sections de code sont données. Il faut écrire le résultat de chaque console.log. */ var n = 1; function F(n) { n = 3; } F(n); console.log(n); var obj = { a: 1 }; function F1(o) { o.a = 5; } F1(obj); console.log(obj); var obj = { a: 1 }; function F2(o) { o = { hello: 1 }; } F2(obj); console.log(obj);

129

Pouvez-vous parler des approches architecturales que vous avez utilisées dans le projet ? Connaissez-vous le Feature-Sliced Design (FSD) ?

129

Implémentez la fonction asyncAuth avec une interface de rappel qui retourne une Promesse. Ensuite, implémentez la fonction tryAuth(n), qui utilise asyncAuth et, en cas d'erreur, effectue n tentatives supplémentaires. Si toutes les tentatives échouent, renvoyez la dernière erreur.

128

[nom] a demandé : Comment le travail sur une tâche spécifique était-il généralement organisé : qui l'apportait et la préparait, comment se déroulait le processus d'approbation, quelles questions surgissaient lors de la mise en œuvre, et comment les résolviez-vous ?

128

Implémentez la fonction withTimeout, qui prend une fonction et un temps (en millisecondes) et retourne une nouvelle fonction. Si la fonction d'origine ne s'exécute pas dans le délai imparti, la promesse doit être rejetée.

126

Que se passe-t-il si le timeout n'est pas nettoyé après l'exécution réussie de la fonction ? Comment y remédier et quelle méthode de promesse conviendrait pour nettoyer le timeout dans tous les cas (succès et erreur) ?

126

/** * La fonction `asyncAuth(callback)` accepte un callback, dans lequel * une erreur (en premier argument) et des données * du backend (en second argument) peuvent être passés. * asyncAuth((error, data) => {}); * * Vous devez implémenter la fonction `auth()`, * qui appelle `asyncAuth()`, mais retourne une promesse. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * La fonction `tryAuth()` utilise `auth()` et, en cas d'erreur, * effectue N tentatives supplémentaires. * Si toutes échouent, elle retourne la dernière erreur. * * @returns {Promise} */ function tryAuth(n) { }

126

[nom] a demandé : Quel cadre de test a été utilisé ?

125

Comment calculer le nombre maximum de connexions WebSocket simultanées si la vitesse de création de connexions et la durée moyenne de la session sont connues?

120
/7