Jak funguje uzávěr v JavaScriptu? Vysvětlete na příkladu proměnné index a funkce run ve vašem řešení.
Frontend
Vysvětlete, jak Promise.all čeká na dokončení všech požadavků ve vašem rekurzivním řešení. Proč může současná implementace vrátit neúplný výsledek?
Povězte mi více o projektu v Цифриум: za které moduly byli odpovědní, jak byla funkce uspořádána — kde se nacházely endpointy, modely, obchodní logika, předplatné?
Použili jste FSD (Feature-Sliced Design) v projektu? Jak jste psali vzorky a předplatné událostí v Effector při používání FSD?
Jak chápete volbu architektury? Jak rozlišujete výhody a nevýhody různých přístupů?
Jak funguje Array.from? Co přijímá jako argumenty?
Optimalizace sestavení: v čem spočívala? Jaké další přístupy znáte k optimalizaci velikosti balíčku?
/** * Implementujte funkci, která provede zpětné volání s daty * a vrátí pole odpovědí Response[]. * Řešení by mělo spouštět všechny požadavky paralelně * ale ne více než [limit] požadavků může být spuštěno současně. * Cílem je minimalizovat celkovou dobu provádění. */ 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[]> { // ZAČÁTEK ŘEŠENÍ ZDE 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; // chyba je potrebné ošetriť } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Co je to code splitting a jak funguje?
Povězte mi o sobě a své pracovní zkušenosti