如何在 redux 可观察史诗中为 ajax 响应发出两个动作

How to emit two actions for ajax response in redux observable epic

我有 redux observable epic,它映射 AJAX 对单个操作的响应 ("createSuccess"):

    export const create = (action$) => {
    return action$.pipe(
        ofType(CREATE_REQUEST),
        mergeMap(action => {
            return ajax({...}
            ).pipe(
                map((response) => createSuccess(response.response)),
                catchError(error => of(createFailure(error)))
            );
        })
    );
};

除了 createSuccess 之外,如何触发不同的操作(我们称之为重定向)?此外,是否可以根据我从 ajax 呼叫中获得的响应来使该操作成为条件?

您可以使用 mergeMapconcatMap 也可以)和 return 回调中的数组来代替 map

mergeMap((response) => [
  otherAction(),
  createSuccess(response.response),
]),

在回调中,您可以放置​​任何您想要的逻辑来创建您想要的任何数组。您 return 的数组由 mergeMap 自动迭代,并且每个项目都作为单独的发射重新发射。