【发布时间】:2017-07-08 04:52:20
【问题描述】:
有没有办法清除 distinct() 缓存?
如您所见,有时我设置 this.messages=[],此时我想清除缓存。相反,我做了一个 hack,我增加了 distinctCount。
ngOnInit() {
let saved = {}
let distinctCount = 1000000000000
let messageStream = this.route.params
.map(params=>params['id'])
.switchMap((id)=> {
this.messages = []
saved[this.id] = this.newMessage
this.id = id
distinctCount+=1000000000000
this.newMessage = saved[id] || ''
return Observable.interval(3500).startWith(0).switchMap(()=> {
let count = 5
if (this.messages.length == 0) {
count = 10
}
return this.conversationsApi.apiConversationsByConversationIdGetMessagesGet(this.id, this.authService.getAuth(), undefined, count, undefined, undefined, undefined)
})
})
.concatMap((messages:Array<MessageModel>)=>{
return Observable.from(messages.slice().reverse())
})
.distinct(message=>message.id+distinctCount)
}
【问题讨论】:
标签: angular rxjs angular2-observables