Ahm*_*mer 5 observable rxjs ngrx ngrx-effects angular
影响:
@Effect()
loadDocsEffect$ = this.actions$.pipe(
ofType(myActionTypes.LoadDocs),
mergeMap(action => this.myService.getDocs()),
map(data => new LoadDocsSuccess(data)),
catchError(error => Observable.of(new LoadDocsFailure(error)))
);
Run Code Online (Sandbox Code Playgroud)
当我返回数据时它可以工作,但是当服务器响应错误时(例如404),可观察对象已完成,并且在我第二次调度动作时不会触发效果。我寻找一种正确处理错误并继续观察到的流的方法,以便可以在我的组件中订阅它并采取相应的措施。
@ngrx Effect中的解决方案第二次不运行对我不起作用,或者我无法使其工作。
Ole*_*luk 10
您需要catchError根据要求而不是actions$。为此,您将需要修改代码,如下所示:
mergeMap(action =>
this.myService.getDocs().pipe(
map(data => new LoadDocsSuccess(data)),
catchError(error => Observable.of(new LoadDocsFailure(error)))
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
378 次 |
| 最近记录: |