При получении сообщений некоторые сообщения могут принадлежать одному и тому же пользователю, поэтому повторная загрузка одного и того же пользователя является избыточной. Сообщение имеет следующее:
Вот мой 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
постов мое кеширование не будет работать, но только для более поздних запросов.
Я полагаю, что мой эпос должен оставить только первый запрос для (того же самого) пользователя и отбросить остальные, пока пользователь не будет выбран. Если есть лучшая стратегия, пожалуйста, предложите.