RxJS删除重复请求

时间:2018-04-30 15:54:13

标签: reactjs redux rxjs redux-observable

在获取帖子时,某些帖子可能是同一个用户,因此多次获取同一个用户是重要的。帖子有以下内容:

  • 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,我的缓存将无效,但仅适用于以后的请求。

我相信我的史诗应该只保留(同一个!)用户的第一个请求并删除其余用户,直到用户被提取为止。如果有更好的策略请建议。

0 个答案:

没有答案