Estoy usando RxJS (a través de Angular2) para recuperar publicaciones de blog de la API REST de WordPress.
Implementé el almacenamiento en caché en el Observable para "obtener todas las publicaciones de blog" (es decir, la lista de blogs) a través del ejemplo descrito aquí y todo funciona muy bien:
http://www.syntaxsuccess.com/viewarticle/caching-with-rxjs-observables-in-angular-2.0
Pero estoy un poco atascado cuando se trata de recuperar/almacenar en caché publicaciones de blog individuales.
Actualmente, se envía una nueva solicitud para "obtener publicación de blog por slug" cada vez que se necesita una publicación de blog; aquí no hay almacenamiento en caché y me gustaría agregar algo.
Con lo que estoy luchando es: lo anterior funciona bien para un GET individual para todas las publicaciones. Solo habrá 1 Observable aquí.
Pero no estoy seguro de cómo implementarlo para un número arbitrario de Observables relacionados con la obtención de publicaciones individuales.
¿Hay alguna idea sobre la mejor manera de hacer esto?
Editar: desde un enlace en los comentarios, esto me ayuda a explicar las cosas un poco más claras:
const observable = Observable.defer( () => actualFn().do(() => this.console.log('CACHE MISS', cacheKey)) ) .publishReplay(1, this.RECACHE_INTERVAL) .refCount().take(1) .do(() => this.console.log('CACHE HIT', cacheKey));Poner el Observable en una const está bien para "obtener todas las publicaciones de blog", ya que siempre es la misma solicitud.
Pero, ¿cómo hago algo similar para obtener una publicación de blog con un identificador arbitrario?
He estado considerando poner los Observables en una matriz o tupla con el identificador de publicación de blog como clave. Pero no tengo mucha experiencia en esta área, así que quiero comprobar que no me estoy perdiendo una forma de hacerlo con el RxJS, ya sea eso o algo completamente obvio: 0