我使用RxJS(通过Angular2)从WordPress REST API中检索博客文章。
我已经在Observable上实现了缓存,以获取所有博客文章" (即博客列表)通过这里概述的例子,一切都很好:
http://www.syntaxsuccess.com/viewarticle/caching-with-rxjs-observables-in-angular-2.0
但在检索/缓存各个博客帖子时,我有点卡住了。
目前,一个新的请求被发送到"获取博客帖子由slug"每当需要博客帖子时 - 在这里没有缓存,我想添加一些。
我正在努力的是 - 上述工作适用于所有帖子的个人GET。在这里只有1 Observable。
但是我不确定如何为任意数量的与单独帖子相关的Observable实现它。
对于如何最好地解决这个问题有什么想法吗?
编辑:通过评论中的链接,这有助于我更清楚地解释事情:
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));
将Observable放入const中对于"获取所有博客帖子"因为它始终是相同的请求。
但是如何为具有任意标识符的获取博客帖子做类似的事情?
我一直在考虑将Observables放入一个以博客帖子标识符为关键字的数组或元组中。但是我在这方面没有太大的经验,所以想要检查一下我是不是错过了用RxJS来解决这个问题的方法 - 无论是那个还是一个完全明显的东西:0