您提供了`undefined`,在Redux Observable中应有流的位置

问题描述 投票:1回答:1

试图绕过RxJS和redux观察我的头

我有这个:

export const getSomeData = (action$) =>
    action$.pipe(
        ofType(GET_USER_DATA),
        mergeMap((action) => getData(action.id)),
        map(fetchUserFulfilled),
        catchError((e) =>
            of({
                type: 'FAILED_TO_FETCH_DATA',
                e,
            }),
        ),
    )

效果很好,但是现在我想在返回数据时实际触发2个可观察对象,所以我尝试了这个:

export const getSomeData = (action$) =>
    action$.pipe(
        ofType(GET_USER_DATA),
        mergeMap((action) => getData(action.id)),
        mergeMap((data) => {
            const newData = data.somethingelse
            of(fetchUserFulfilled(newData), anotherOne(newData))
        }),

        catchError((e) =>
            of({
                type: 'FAILED_TO_FETCH_DATA',
                e,
            }),
        ),
    )

但是这失败了。所以我该如何解决这个问题,我有什么误解,以及如何正确使用mergeMap

javascript reactjs rxjs redux-observable
1个回答
1
投票

mergeMap应该返回一个可观察的

mergeMap((data) => {
            const newData = data.somethingelse
            return of(fetchUserFulfilled(newData), anotherOne(newData))
        }),
© www.soinside.com 2019 - 2024. All rights reserved.