Sobes.tech

Frontend

/** * Es necesario escribir una función asíncrona, * que "duerma" la cantidad de milisegundos especificada, * y luego termine con éxito * / function sleep(duration) { } // Ejemplo const startTime = Date.now(); console.log("empezando a dormir..."); sleep(2000).then(() => { console.log("¡Desperté después de 2 segundos!"); console.log("Tiempo transcurrido: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("¡Desperté después de 1 segundo!"); console.log("Tiempo transcurrido: ", Date.now() - startTime); });

139

Para cada uno de los tres fragmentos de código JavaScript, determine qué se mostrará en la consola y explique las diferencias en el comportamiento de los primitivos, objetos y reasignaciones de referencias.

139

¿Existen problemas con la adición de nuevos métodos a los prototipos de objetos integrados?

139

¿Por qué puede ser necesario el método apply en la solución runOnce?

137

/** * Implementar la función sumPromises, que acepta * promesas como argumentos y devuelve la suma * de sus resultados. * * La función puede aceptar cualquier cantidad de argumentos. * Se pueden usar cualquier API de promesas. */ // Código aquí // Ejemplo de uso const promise1 = Promise.resolve(1); const promise2 = Promise.resolve(2); sumPromises(promise1, promise2).then(console.log); // 3

136

[nombre] preguntó: ¿Cuánto tiempo llevó implementar la versión MVP del reproductor?

135

/** * La función `asyncAuth(callback)` acepta un callback, en el que se puede * pasar un error (como primer argumento) y datos * del backend (como segundo argumento). * asyncAuth((error, data) => {}); * * Necesitas implementar la función `auth()`, * que llama a `asyncAuth()`, pero devuelve una Promesa. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * La función `tryAuth()` usa `auth()` y, en caso de error, * realiza N intentos adicionales. * Si todos los intentos fallan, devuelve el último error. * * @returns {Promise} */ function tryAuth(n) { }

135

/* Es necesario escribir una función para calcular la suma de todos los valores numéricos en un array. Los valores numéricos válidos también son cadenas, que comienzan con dígitos. En este caso, se debe usar esa secuencia inicial de dígitos como valor numérico. El array puede contener cualquier tipo de datos y no ser plano. **No se deben usar métodos integrados como .flat, .flatMap** */ function sum(arr) { // ... } console.log(sum([1, 'x', '2x', ['3', ['x2', '5']]]));

134

/** * Implementar la función envoltorio runOnce, que acepta * una función y devuelve una nueva función. La nueva función * solo puede ser llamada una vez, todas las llamadas posteriores * devuelven undefined. * * La función envuelta puede aceptar argumentos * y devolver un resultado. */ function runOnce(fn) { // tu código } const logHello = (name) => { console.log(`hola, ${name}!`) }; const logHelloOnce = runOnce(logHello); console.clear(); logHelloOnce('Oleg'); // 'hola, Oleg!' logHelloOnce('Olga'); // undefined

134

¿Qué novedades del estándar ES6 se utilizan en el código escrito? ¿Qué es el objeto arguments y en qué se diferencia de los parámetros rest?

130

¿Cómo convertir arguments en un array de la manera antigua (ES5), sin Array.from ni spread operator?

130

/** * Se dan tres secciones de código. Es necesario escribir el resultado de cada 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);

129

¿Puede contarme sobre los enfoques arquitectónicos que utilizó en el proyecto? ¿Está familiarizado con Feature-Sliced Design (FSD)?

129

Implemente la función asyncAuth con una interfaz de callback que devuelva una Promesa. Luego, implemente la función tryAuth(n), que utiliza asyncAuth y, en caso de error, realiza n intentos adicionales. Si todos los intentos fallan, devuelve el último error.

128

[nombre] preguntó: ¿Cómo se organizaba generalmente el trabajo en una tarea específica: quién la traía y la pulía, cómo era el proceso de aprobación, qué preguntas surgían durante la implementación y cómo las resolvían?

128

Implementar la función withTimeout, que toma una función y un tiempo (milisegundos) y devuelve una nueva función. Si la función original no se ejecuta en el tiempo establecido, la promesa debe ser rechazada.

126

¿Qué sucede si no se limpia el timeout después de que la función se ejecuta con éxito? ¿Cómo se puede solucionar esto y qué método de promesa sería adecuado para limpiar el timeout en cualquier caso (tanto en éxito como en error)?

126

/** * La función `asyncAuth(callback)` acepta un callback, en el cual * puede pasarse un error (como primer argumento) y datos * del backend (como segundo argumento). * asyncAuth((error, data) => {}); * * Debes implementar la función `auth()`, * que llama a `asyncAuth()`, pero devuelve una Promesa. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * La función `tryAuth()` usa `auth()` y, en caso de error, * realiza N intentos adicionales. * Si todos los intentos fallan, devuelve el último error. * * @returns {Promise} */ function tryAuth(n) { }

126

[nombre] preguntó: ¿Qué marco de pruebas se utilizó?

125

¿Cómo calcular el número máximo de conexiones WebSocket simultáneas si se conoce la tasa de creación de conexiones y la duración media de la sesión?

120
/7