Wie funktioniert eine Closure in JavaScript? Erklären Sie es anhand eines Beispiels mit der Variablen index und der Funktion run in Ihrer Lösung.
Frontend
Erklären Sie, wie Promise.all in Ihrer rekursiven Lösung darauf wartet, dass alle Anfragen abgeschlossen sind. Warum kann die aktuelle Implementierung ein unvollständiges Ergebnis zurückgeben?
Erzählen Sie mir mehr über das Projekt in Цифриум: Für welche Module waren sie verantwortlich, wie war die Funktion aufgebaut — wo lagen die Endpoints, Modelle, Geschäftslogik, Abonnements?
Haben Sie FSD (Feature-Sliced Design) in einem Projekt verwendet? Wie haben Sie Samples und Event-Abonnements in Effector beim Einsatz von FSD geschrieben?
Wie verstehen Sie die Wahl der Architektur? Wie heben Sie die Vor- und Nachteile verschiedener Ansätze hervor?
Build-Optimierung: Worum ging es dabei? Welche weiteren Ansätze kennen Sie zur Optimierung der Bundle-Größe?
Wie funktioniert Array.from? Was nimmt es als Argumente an?
/** * Implementieren Sie die Funktion, die einen Callback mit den Daten ausführt * und ein Array von Antworten Response[] zurückgibt. * Die Lösung sollte alle Anfragen parallel ausführen * aber nicht mehr als [limit] Anfragen gleichzeitig. * Das Ziel ist es, die gesamte Ausführungszeit zu minimieren. */ 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[]> { // START DER LÖSUNG HIER 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; // Fehlerbehandlung erforderlich } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Erzählen Sie mir von sich und Ihrer Berufserfahrung
Was ist Code Splitting und wie funktioniert es?