在查看有关使用服务进行HTTP请求的Angular 5+指南时,我们可以看到服务的基本模式如下:
getTasks(taskId: string): Observable<ITask[]> {
var url = this.baseServiceUrl + 'task/' + taskId;
this.fetchedTasks = this.http.get<ITask[]>(url);
return this.fetchedTasks;
}
一个组件可以按照以下方式使用它。
getTasks(taskId: string): void {
this.taskService.getTasks(taskId).subscribe(tasks => this.tasks = tasks);
}
使用上述案例,如何修改以允许我们处理HTTP响应代码,例如400、403、401、404和5xx。
简而言之,我们需要使调用者意识到故障结果与未找到等,并能处理相关的UI问题。
map
和catch
/catchError
将有意义的状态/数据返回给调用者(组件)。 - Igor