Reactjs RxJS丢弃重复请求
在获取帖子时,某些帖子可能是由同一用户发布的,因此多次获取同一用户是冗余的。一个职位具有以下特点:Reactjs RxJS丢弃重复请求,reactjs,redux,rxjs,redux-observable,Reactjs,Redux,Rxjs,Redux Observable,在获取帖子时,某些帖子可能是由同一用户发布的,因此多次获取同一用户是冗余的。一个职位具有以下特点: userId id 标题 body 以下是我的用户epic: const fetchUserEpic = (action$, store) => action$ .ofType(UsersActions.FETCH_USER) .mergeMap(action => { const users = store
userId
id
标题
body
用户
epic:
const fetchUserEpic = (action$, store) =>
action$
.ofType(UsersActions.FETCH_USER)
.mergeMap(action => {
const users = store
.getState()
.usersStore.get('users')
.toJS()
// Check whether user is already in the store
if (users[action.payload]) {
return of(UsersActionCreators.loadCachedUser())
}
// Fetch user (and catch errors)
return ajax
.getJSON(URL + '/users/' + action.payload)
.map(res => UsersActionCreators.fetchUserFulfilled(res))
.catch(err => of(UsersActionCreators.fetchUserRejected(err)))
})
在我当前的epic中,对于帖子的初始获取,我的缓存将不起作用,但只能用于以后的请求
我相信我的epic应该只保留(相同!)用户的第一个请求,并删除其余的请求,直到用户被抓取。如果有更好的策略,请提出建议。您引用的是一种效果中的状态,这种效果通常是不好的形式,并且会产生不好的结果。您应该重新构造内容,以便有效负载包含缓存的用户,并以这种方式检查缓存。@bryan60那么,如果我在某个组件的componentDidMount
中分派FETCH\u USER
,我是否也应该在那里检查用户是否已经存在?(而不是在史诗中)