我是来自 Python 背景的 Angular4 新手,并试图了解创建 HTTPClient 服务然后在组件中使用该服务的最佳模式。
我的服务如下所示:
@Injectable()
export class DatasetService {
constructor(private http: HttpClient) { }
getDatasets(): Observable<Array<Dataset>> {
// Get list of all datastes
return this.http.get<Array<Dataset>>('http://localhost:5000/api/v2/admin/dataset/list');
}
}
我的组件使用如下服务:
export class DataManagementComponent implements OnInit {
constructor(private datasetService: DatasetService) { }
ngOnInit() {
this.datasetService.getDatasets()
.subscribe(
data => {
console.log(data['datasets']);
},
error => {
if (error.status === 404) {console.log('No records'); }
});
}
}
这行得通,但感觉服务有漏洞,因为消费者必须映射数据并处理错误。而如果我在 Python 中这样做,我会有类似的东西:
try:
mydata = DatasetService.getDatasets()
except as e:
print(e)