const memoize = fn => {
const cache = new Map();
return async (...args) => {
const key = JSON.stringify(args);
if (!cache.has(key)) cache.set(key, await fn(...args));
return cache.get(key);
};
}; 📥 Inputs:
const fetchUser = async (id) => ({ id, name: 'User' + id });
const cached = memoize(fetchUser);
await cached(1); // Primera llamada
await cached(1); // Desde caché
❓ ¿Cuál es el output?
Ingresa tu respuesta abajo
💡 Explicación
Función de orden superior que crea un closure con Map para cachear resultados de funciones async. Combina closures, async/await y operador spread para optimizar llamadas costosas.
¿Puedes explicar cómo el closure mantiene el cache vivo? 🧠 Comenta tu respuesta 👇