Frontend
async function loadUsers(ids) { const users = [] ids.forEach(async id => { const res = await fetch(`/api/users/${id}`) const user = await res.json() users.push(user) }) return users } Identify the problem with this code and suggest how to fix it.
Se viene creata una nuova macro task durante l'esecuzione del ciclo Event Loop, come e quando verrà elaborata?
Cosa fare se Redis si riempie sotto un carico elevato?
Spiega come Promise.all attende il completamento di tutte le richieste nella tua soluzione ricorsiva. Perché l'implementazione attuale potrebbe restituire un risultato incompleto?
// Ci sono anche 25 oggetti che // hanno un identificatore privato e un metodo per assegnarlo // così come un campo data di creazione. // L'identificatore può contenere un numero o una stringa. // Anche il campo data di creazione può contenere una stringa o un numero. // I tipi per data di creazione e identificatore corrispondono (o stringa, o numero) // Descrivi un tipo per tali oggetti let a = { getId: () => createdId: [phone] } let b = { getId: () => 'id', createdAt: '[phone]T20:00:00Z' } // questo oggetto NON dovrebbe corrispondere al tipo: let c = { getId: () => 56, createdAt: '[phone]T20:00:00Z' }
/** * Implementa la funzione che eseguirà un callback con i dati * e restituirà un array di risposte Response[]. * La soluzione dovrebbe eseguire tutte le richieste in parallelo * ma non più di [limit] richieste possono essere eseguite contemporaneamente. * L'obiettivo è minimizzare il tempo totale di esecuzione. */ type Props<RequestData, Response> = { callback: (args: RequestData) => Promise<Response>; data: Array<RequestData>; limit: number; }; export async function runWithLimit<RequestData, Response>({ callback, data, limit, }: Props<RequestData, Response>): Promise<Response[]> { // INIZIO SOLUZIONE QUI if (limit < 1 || data.length === 0) { return Promise.resolve([]); } if (limit >= data.length) { return Promise.all(data.map(callback)); } const result: Response[] = new Array(data.length); let index = 0; const run = async () => { if (index >= data.length) return; const elem = data[index]; try { result[index] = await callback(elem); } catch (err) { result[index] = (err) as Response; // gestione errore da fare } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Perché non si possono chiamare gli hook nelle condizioni o nei cicli?
Domanda n° 6: cosa restituirà questo pezzo di codice (chiamata a una funzione freccia tramite l'operatore new)?
A quale tipo di temperamento ti identificheresti: estroverso, introverso o ambiverto?
Spiega cos'è l'Event Loop. Cosa riguarda le microtask e le macrotask?
Parlami del compito più interessante nell'ultimo progetto.
Con quali hook possiamo memorizzare lo stato locale in React?
Come hai implementato il modello di accesso basato sui ruoli nel frontend? Come si determinava cosa mostrare all'utente in base ai permessi?
Cos'è una tabella hash e come si collega a Map? Cos'è una collisione nel contesto delle tabelle hash?
/** * È necessario scrivere una funzione asincrona, * che "dorme" per il numero di millisecondi specificato, * e poi termina con successo */
Puoi spiegare perché proprio questo numero?
Di cosa è composta una richiesta HTTP? Nomina le sue parti principali e blocchi.
Da quanto tempo scrivi in Node.js?
Come ti valuti — che il tuo lavoro porta successo, che ti sviluppi con successo? Hai qualche criterio per valutarlo?
Cos'è il protocollo WebSocket e qual è il suo scopo, quando viene applicato?