¿Cómo funciona un cierre en JavaScript? Explícalo con un ejemplo de la variable index y la función run en tu solución.
Frontend
Explica cómo Promise.all espera a que se completen todas las solicitudes en tu solución con recursión. ¿Por qué la implementación actual puede devolver un resultado incompleto?
Cuéntame más sobre el proyecto en Цифриум: ¿de qué módulos eran responsables, cómo se estructuró la función — dónde estaban ubicados los endpoints, modelos, lógica de negocio, suscripciones?
¿Has utilizado FSD (Feature-Sliced Design) en un proyecto? ¿Cómo escribiste muestras y suscripciones a eventos en Effector al usar FSD?
¿Cómo entiendes la elección de la arquitectura? ¿Cómo destacas las ventajas y desventajas entre diferentes enfoques?
¿Cómo funciona Array.from? ¿Qué acepta como argumentos?
/** * Implementa la función que ejecutará un callback con los datos * y devolverá un array de respuestas Response[]. * La solución debe ejecutar todas las solicitudes en paralelo * pero no más de [limit] solicitudes pueden ejecutarse simultáneamente. * El objetivo es minimizar el tiempo total de ejecució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[]> { // INICIO DE LA SOLUCIÓN AQUÍ 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; // por hacer: manejar error } index++; run(); }; const startPack = Array.from({ length: limit }, run); await Promise.all(startPack); return result; }
Optimización de la compilación: ¿en qué consistió? ¿Qué otros enfoques conoce para optimizar el tamaño del paquete?
¿Qué es la división de código y cómo funciona?
Cuéntame sobre ti y tu experiencia laboral