小编Ric*_*tts的帖子

Angular 4 使用 switchMap 失去对路由器 paramMap 的订阅

使用最新版本的 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
});
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,如果 getForecastData 调用失败(服务器返回 500),则对路由器 paramMap observable 的订阅似乎丢失了。我尝试导航到不同的预测,但未调用 getForecastData 方法。

我想我需要某种错误处理,但我需要在哪里处理?除非我需要返回另一个 Observable,否则在订阅中添加错误调用似乎不起作用?

这基本上是从 Angular 站点上的教程改编而来,但是他们返回了一个带有静态数据的 Promise 并且非常坚持快乐的道路。

rxjs angular2-routing angular

3
推荐指数
1
解决办法
2292
查看次数

标签 统计

angular ×1

angular2-routing ×1

rxjs ×1