【发布时间】:2021-01-07 04:02:34
【问题描述】:
我有一个 getClients 方法,它是对 web 服务的调用,它返回一个 Json 答案,其中一个字段是“响应”(将所有客户端返回为接口 Data[])
getClients(): Observable<any> {
// Get all clients from the database
return this.http.get<any>(environment.apiURL + '/client/list' );
}
我在另一个组件中有一个 getResults() 方法:
filterData: Data[];
getResults(): Promise<Data[]> {
const promise = new Promise<Data[]>((resolve, reject) => {
this.restApiService.getClients()
.toPromise()
.then( clients => {
clients.response.json as Data[];
})
.catch(this.handleError);
;
});
return promise;
}`
=> 返回承诺;
另一个组件:接收结果,这里我希望它是接口Data[]
clients: Promise<Data[]>;
constructor( private service: Service ) {
this.clients = this.service.getResults();
console.log('clientsssss : ' + this.clients);
}
ngOnInit() {
}
接口数据 - 这是“响应”字段中的结构
export interface Data {
clientName: string;
clientId: number;
}
我没有成功从getResults方法中取回我需要的数据(接口Data)
我首先尝试使用 Observable,但它是一个很长的列表并且它没有给出任何结果(空),所以我读它是异步的,所以我需要使用“promise”。
【问题讨论】: