【发布时间】:2018-05-01 10:36:57
【问题描述】:
在一个 Angular (4.3.6) 应用程序中,我使用异步管道在模板中订阅 observables。
在某些情况下,当我从 HTTP GET 得到 404 时,异常会被 Angular 冒泡并且应用程序变得无响应。
我已经看到我可以在我的服务中使用 .catch() 方法,但在我的组件中没有直接的 .subscribe() 方法,我该如何处理异常?
文档服务:
public getDocument() {
return this.getDocument(serverUrl).catch((err) => this.handleError(err));
}
private handleError(error: Response) {
return Observable.throw(error);
}
组件:
public ngOnInit() {
const document$ = this.reference$
.filter((i) => !!i)
.combineLatest(this.documentService.getBranch(),
(r: any, branch: string) => {
return this.documentService.getDocument(r.Id, r.targetId, this.GetHeadBranch(branch));
}).switch();
}
模板:
<div *ngIf="document$|async; let document;">
....
</div>
在我的案例中,是否有使用可观察对象捕获异常的最佳实践?
【问题讨论】:
标签: angular exception-handling angular2-observables