我对NgRX效应有如下影响:
$createOrganisation = createEffect(() =>
this.actions$.pipe(
ofType(fromOrganisationActions.createOrganisation),
switchMap((data) => this.organisation.createOrganisation(data)),
map((response) => fromOrganisationActions.createOrganisationSuccess({ orgId: response.id })),
catchError((error) => {
return of(fromOrganisationActions.createOrganisationError(error));
})
)
);
然而,我的流似乎永远不会结束时
catchError
被触发,即在
this.organisation.createOrganisation
返回400错误。
行动,
fromOrganisationActions.createOrganisationError(error)
我的减速器被触发了。。。但如果我重新触发
fromOrganisationActions.createOrganisation
效果,此效果会运行,但不会再次调用API。
如果我按如下方式配置它,并手动分派它,它就会工作:
$createOrganisation = createEffect(() =>
this.actions$.pipe(
ofType(fromOrganisationActions.createOrganisation),
switchMap((data) => this.organisation.createOrganisation(data)),
map((response) => fromOrganisationActions.createOrganisationSuccess({ orgId: response.id })),
catchError((error) => {
this.store.dispatch(fromOrganisationActions.createOrganisationError(error));
return throwError(error);
})
)
);
但网上的其他例子表明,第一种方法应该有效,但它不适合我,我不明白为什么我的流永远不会结束。
有人能告诉我为什么我的流一开始就没有结束吗?