在获取帖子时,某些帖子可能是同一个用户,因此多次获取同一个用户是重要的。帖子有以下内容:
userId
id
title
body
这是我的users
史诗:
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)))
})
使用我当前的史诗,对于帖子的初始fetch
,我的缓存将无效,但仅适用于以后的请求。
我相信我的史诗应该只保留(同一个!)用户的第一个请求并删除其余用户,直到用户被提取为止。如果有更好的策略请建议。