который я сначала получаю по http а потом подписываюсь на обновления по сокетам и юзер еще отдельно может обновлять эти айтемы по http и его же обновления прийдут по сокетам, так вот вопрос адекватно ли сделать race между двумя источниками обновления и не нужно ли все таки использовать http а не то что пришло из сокетов ?
getAndSubscribeToAllItems(): Observable<Item[]> {
return this.getAllItems().pipe(
switchMap(items => {
let changedItemList: item[] = [...items]
return concat(of(changedItemList), race(this.itemAdded.pipe(map(item => {
changeditemList = [...changedItemList, item].filter((_, i) => i !== 0)
return changeditemList
})), this.itemUpdated.pipe(map(item => {
changeditemList = changeditemList.map(t => t._id === item._id ? item : t)
return changeditemList
}))))
}))
}
}
почему бы не сделать просто чтобы любые входящие затирали старые данные и не мудрить с race?
Обсуждают сегодня