【发布时间】:2017-09-01 09:32:20
【问题描述】:
使用最新版本的 Angular,我有一个非常小、简单的应用程序 - 见下文:
预测详细信息组件如下所示:
public getForecastData(forecastId) : Observable<any> {
return this.http.get<any>('/api/forecasts/' + forecastId + '/data');
}
ngOnInit() {
this.route.paramMap
.switchMap(
params => {
return this.getForecastData(params.get('id'))
})
})
.subscribe( (data) => {
// business logic here
});
我遇到的问题是,如果 getForecastData 调用失败(服务器返回 500),对路由器 paramMap observable 的订阅似乎会丢失。我尝试导航到不同的预测,但未调用 getForecastData 方法。
我想我需要某种错误处理,但我需要在哪里处理呢?在订阅中添加错误调用似乎不起作用,除非我需要返回另一个 Observable?
这基本上是对 Angular 网站上教程的改编,但是他们返回一个带有静态数据的 Promise,并且非常坚持快乐的道路。
【问题讨论】:
-
data => {// business logic here}), err => //your error如果你想再次使用这个错误建议ngOnIt >> call function>>error>> do function again
标签: angular rxjs angular2-routing