Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

246
Vistas
Limitar el tamaño de la entidad Ngrx

Estoy creando una aplicación que obtendrá datos de un websocket y el tamaño de la entidad aumentará con el tiempo. Quiero eliminar los elementos antiguos cuando el tamaño supera el máximo. Actualmente uso selectTotal$ para obtener el tamaño actual de la entidad y, si supera el máximo, llamaré a removeMany(ids) para eliminar los elementos antiguos. Sin embargo, no creo que esta sea una buena manera, porque selectTotal$ se activará nuevamente. ¿Debo hacer esto en el reductor al cambiar artículos a la entidad?

Mi implementación actual:

 this.store.selectTotal$ .pipe( filter((t) => t > MAX_COUNT), switchMapTo(this.store.ids$) ) .subscribe((ids) => { const removals = ids.slice(MAX_COUNT); this.store.removeMany(removals); });
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Puede escribir un efecto, que escuchará el empuje del websocket pero no guardará los datos directamente. En su lugar, verificará el estado actual, calculará uno nuevo y luego enviará una acción para guardar los datos en la tienda.

Algo como esto:

 someEffect$ = createEffect(() => this.acitons$.pipe( ofType(processDataPushAction), withLatestFrom(this.store.selectAll), // Get all entities currently in store map(([<action.payload>, allData]) => { let calcResult; // if (allData.length > MAX_COUNT) { // splice and assign to calcResult } else { calcResult = <action.payload>; } return saveDataAction({ calcResult }); }) ) )
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda