我正在使用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添加到第一个管道,它将运行。我究竟做错了什么?谢谢!
我认为你以错误的方式使用内部pipe
。你可以这样做:
concatMap(() => from(getUser()).pipe(
map(loginActions.loginSuccess),
tap(() => console.log('Silent login success'))
)),
catchError((err: any) => {
console.log(err);
loginActions.errorHandler();
return empty();
})