私はPythonの背景からAngular4を初めて使い、HTTPClientサービスを作成するための最良のパターンを理解してから、そのコンポーネントをコンポーネントで消費しています。Angular4コンポーネント内のHttpClientサービスを消費する
私のサービスは、次のようになります。
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'); }
});
}
}
これは動作しますが、消費者がデータをマッピングする必要があるため、サービスが漏出性であるようにそれは感じている:次のように
@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');
}
}
私のコンポーネントがサービスを消費しますエラーを処理します。私はPythonでこれをやっていた場合、私のようなものを持っていると思いに対し:
try:
mydata = DatasetService.getDatasets()
except as e:
print(e)