我正在使用
private readData = (api: string): any => {
if (!this.cacheService.readFromCache(api)) {
this.cacheService.writeToCache(api, this.request(api, RequestMethod.Get)
.map(response => {
return response;
})
.publishReplay(1)
.refCount());
}
return this.cacheService.readFromCache(api);
}
这段代码存储了我的api调用响应。这很好用,但是我想在自上次实际http调用以来的一定时间后使缓存过期。否则,用户将始终看到“过时的”缓存。
有没有办法做到这一点?
答案 0 :(得分:0)
与此类似吗?
const cacheStore=()=>{
let _cache={data:'init'}
const store=Rx.Observable.create(obs=>{
obs.next(_cache)
})
const update=(cache)=>{
_cache=Object.assign({},cache)
}
return {store,update}
}
const cache=cacheStore()
cache.store.subscribe(console.log)
cache.update({data:"new data"})
cache.store.subscribe(console.log)