多个相同的异步请求与Redux可观察的史诗

时间:2019-10-27 02:59:17

标签: reactjs typescript rxjs rxjs6 redux-observable

当用户创建新帐户时,我想保存一些占位符信息以开始使用。不幸的是,我无法创建批量发布请求。所以我必须遍历数组。

我正在尝试使用 jsonplaceholder.typecode 和来自similar stackoverflow questionanother stackoverflow question

的代码进行测试
export const fetchAction = (resource: string[]): FetchPostsAction => ({
    type: ActionTypes.FETCH_POSTS,
    resource,
})

export const getPostsEpic = (action$: any) => action$.pipe(
    ofType(ActionTypes.FETCH_POSTS),
    mergeMap((action: FetchPostsAction) => {

        let promiseArray = action.resource.map(id => {

            return from(axios.get<Post>(`https://jsonplaceholder.typicode.com/posts/${id}`)
            .then(response => ({type: ActionTypes.FETCH_POST_SUCCESS, post: response.data}))
            .catch(err => console.log(err)))
        })

        return forkJoin(promiseArray)
    })  
)

在App.tsx中,我按以下方式调用操作

 React.useEffect(() => {

    if (props.posts.length === 0) {

      props.fetchAction(['1', '2', '3'])
    }
  }, [props])

我进入了可观察的结果。我的结果很成功,但无法调度多个动作。另外,如何使用嵌套在mergemap中的mergemap做到这一点?

0 个答案:

没有答案