如何在rxjs史诗中的catchError之后调度一个动作

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

我正在使用rxjs,如果在我的代码中发现错误,我想触发错误处理史诗。

export const exampleLogin = (action$: AnyAction, state$: any) => action$.pipe(
ofType(appActions.APP_START),
withLatestFrom(state$),
concatMap(() => from(getUser())),
pipe(
    map(loginActions.loginSuccess),
    tap(() => console.log('Silent login success'))
),
catchError((err: any) => {
    console.log(err);
    loginActions.errorHandler();
    return empty();
}
));

代码的console.log部分执行,但我的errorHandler函数没有。如果我将errorHandler添加到第一个管道,它将运行。我究竟做错了什么?谢谢!

error-handling rxjs action
1个回答
0
投票

我认为你以错误的方式使用内部pipe。你可以这样做:

concatMap(() => from(getUser()).pipe(
    map(loginActions.loginSuccess),
    tap(() => console.log('Silent login success'))
)),
catchError((err: any) => {
    console.log(err);
    loginActions.errorHandler();
    return empty();
})
© www.soinside.com 2019 - 2024. All rights reserved.