您好我已将Angular2应用程序升级为Angular5,我在其余调用(POST和GET)中使用了promises和observable,之前工作正常并且它目前在我的大部分组件中工作,但在一个组件所有数据都是通过单个请求获取的,但在调用下一个事件之前它不会显示在视图中。任何人有任何想法,我认为这是由于HTTP,所以我已经将其更改为HTTPClient仍然是相同的问题araise。这是我的承诺代码。
headers: HttpHeaders;
constructor(private http: HttpClient) {
if (AppConfig.getHttpHeader() !== null) {
this.headers = AppConfig.getHttpHeader()
};
}
getService(url: string): Promise<any> {
return this.http
.get(url, {observe: 'response', headers:this.headers})
.toPromise()
.then(this.extractData)
.catch(this.handleError);
}
postService(url: string, bodyParam: any): Promise<any> {
return this.http
.post(url, bodyParam, {observe: 'response', headers:this.headers})
.toPromise()
.then()
.catch(this.handleError);
}
extractData(res: HttpResponse<Object>) {
const body = res.body;
return body || {};
}
private handleError(error: any): Promise<any> {
console.error('An error occurred', error);
return Promise.reject(error.message || error);
}