Sobes.tech

Frontend

/** * È necessario scrivere una funzione asincrona, * che "dorma" per il numero di millisecondi specificato, * e poi termini con successo * / function sleep(duration) { } // Esempio const startTime = Date.now(); console.log("inizio a dormire..."); sleep(2000).then(() => { console.log("Svegliato dopo 2 secondi!"); console.log("Tempo trascorso: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("Svegliato dopo 1 secondo!"); console.log("Tempo trascorso: ", Date.now() - startTime); });

139

Dato una funzione sincrona e un tempo in millisecondi. È necessario restituire una nuova versione di questa funzione, la cui esecuzione sia limitata dal tempo specificato. Se la funzione viene eseguita entro il tempo, la promessa si risolve con i dati ottenuti. Se non, la promessa viene rifiutata con la stringa 'time limit exceeded'.

139

Ci sono problemi nell'aggiunta di nuovi metodi ai prototipi degli oggetti integrati?

139

Perché potrebbe essere necessario il metodo apply nella soluzione runOnce?

137

/** * Implementare la funzione sumPromises, che accetta * promesse come argomenti e restituisce la somma * dei loro risultati. * * La funzione può accettare qualsiasi numero di argomenti. * È possibile utilizzare qualsiasi API di promesse. */ // Codice qui // Esempio di utilizzo const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

136

/** * La funzione `asyncAuth(callback)` accetta un callback, nel quale può * essere passato un errore (come primo argomento) e dati * dal backend (come secondo argomento). * asyncAuth((error, data) => {}); * * Devi implementare la funzione `auth()`, * che chiama `asyncAuth()`, ma restituisce una Promise. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * La funzione `tryAuth()` utilizza `auth()` e, in caso di errore, * effettua N tentativi aggiuntivi. * Se tutti falliscono, restituisce l'ultimo errore. * * @returns {Promise} */ function tryAuth(n) { }

135

[nome] ha chiesto: Quanto tempo ci è voluto per implementare la versione MVP del lettore?

135

/** * Implementa la funzione wrapper runOnce, che accetta * una funzione e ne restituisce una nuova. La nuova funzione * può essere chiamata solo una volta, tutte le chiamate successive * restituiscono undefined. * * La funzione avvolta può accettare argomenti * e restituire un risultato. */ function runOnce(fn) { // il tuo codice } const logHello = (name) => { console.log(`ciao, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'ciao, Oleg!' logHelloOnce('Olga'); // undefined

134

/* È necessario scrivere una funzione per calcolare la somma di tutti i valori numerici in un array. Valori numerici validi sono anche stringhe, che iniziano con cifre. In questo caso, bisogna usare questa sequenza iniziale di cifre come valore numerico. L'array può contenere qualsiasi tipo di dato e non essere piatto. **Non si devono usare metodi integrati come .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

132

Come convertire arguments in un array nel vecchio modo (ES5), senza Array.from e spread-operator?

130

Quali novità dello standard ES6 sono utilizzate nel codice scritto? Cos'è l'oggetto arguments e come si differenzia dai parametri rest?

130

Può parlare degli approcci architettonici che ha utilizzato nel progetto? Conosce il Feature-Sliced Design (FSD)?

129

[nome] ha chiesto: Come veniva generalmente organizzato il lavoro su un compito specifico: chi lo portava e lo preparava, come avveniva il processo di approvazione, quali domande sorgevano durante l'implementazione e come le risolvevate?

128

Implementa la funzione asyncAuth con un'interfaccia di callback che restituisce una Promise. Quindi implementa la funzione tryAuth(n), che utilizza asyncAuth e, in caso di errore, effettua n tentativi aggiuntivi. Se tutti i tentativi falliscono, restituisce l'ultimo errore.

128

/** * Sono tre sezioni di codice. È necessario scrivere il risultato di ogni 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);

127

Implementa la funzione withTimeout, che prende una funzione e un tempo (millisecondi) e restituisce una nuova funzione. Se la funzione originale non viene eseguita entro il tempo stabilito, la promessa deve essere rifiutata.

126

Cosa succede se non si pulisce il timeout dopo l'esecuzione riuscita della funzione? Come si può risolvere e quale metodo di promessa sarebbe adatto per pulire il timeout in ogni caso (successo e errore)?

126

[nome] ha chiesto: Quale framework di test è stato usato?

125

/** * La funzione `asyncAuth(callback)` accetta un callback, nel quale * può essere passata un errore (come primo argomento) e dati * dal backend (come secondo argomento). * asyncAuth((error, data) => {}); * * Devi implementare la funzione `auth()`, * che chiama `asyncAuth()`, ma restituisce una Promise. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * La funzione `tryAuth()` utilizza `auth()` e, in caso di errore, * effettua N tentativi aggiuntivi. * Se tutti falliscono, restituisce l'ultimo errore. * * @returns {Promise} */ function tryAuth(n) { }

124

Come calcolare il numero massimo di connessioni WebSocket simultanee se si conoscono la velocità di creazione delle connessioni e la durata media della sessione?

120
/7