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



>我有 redux 可观察的史诗,它将 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)))
            );
        })
    );
};

除了创建成功之外,我如何触发不同的操作(我们称之为重定向(?另外,是否可以根据我从 ajax 调用中获得的响应使该操作有条件?

您可以使用mergeMap而不是map(concatMap也可以工作(并从其回调返回一个数组:

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

在回调中,您可以放置任何您想要的逻辑,从而制作您想要的任何数组。您返回的数组会自动迭代mergeMap并且每个项目都作为单独的发射重新发出。

最新更新