Gestionar manualmente la caché en TypeScript puede convertirse rápidamente en un desastre, especialmente en proyectos grandes.

El truco

// ANTES (mal)
function fetchData(url: string): Promise<string> {
  return fetch(url).then(response => response.text());
}

// DESPUÉS (bien)
class Cache {
  private cache: Map<string, Promise<string>> = new Map();

  fetchData(url: string): Promise<string> {
    if (this.cache.has(url)) {
      return this.cache.get(url)!;
    }
    const dataPromise = fetch(url).then(response => response.text());
    this.cache.set(url, dataPromise);
    return dataPromise;
  }
}

const cache = new Cache();
cache.fetchData('https://api.example.com/data');

Implementar un patrón de caché basado en una clase simplifica enormemente el manejo de datos obtenidos de la red. Esto evita solicitudes redundantes al verificar primero si ya se ha almacenado en caché un resultado previo. Además, centraliza el control de la caché en una sola clase, permitiendo que cualquier parte de tu aplicación acceda a datos que ya se han buscado anteriormente sin necesidad de reescribir lógica de caché dispersa.

Ahorra tiempo y reduce la complejidad del código al usar un patrón de caché eficiente y reutilizable.