如何将angular 5服务响应映射到JSON对象
在早期的angular版本中,在我们的服务中,我们可以简单地将响应映射到JSON对象,如下所示:如何将angular 5服务响应映射到JSON对象,json,angular,service,mapping,Json,Angular,Service,Mapping,在早期的angular版本中,在我们的服务中,我们可以简单地将响应映射到JSON对象,如下所示: import { Injectable } from '@angular/core'; import 'rxjs/add/operator/map'; import { HttpClient } from '@angular/common/http'; @Injectable() export class MakeService { constructor(private http:Http
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class MakeService {
constructor(private http:HttpClient) { }
getMakes(){
return this.http.get('/api/myAPI')
.map(res=>res.json());
}
}
然而,在angular5中,我们不再使用HTTP,而是必须使用HttpClient,上面的代码中应该添加什么才能在angular5中工作
我的组件看起来像:
makes : any[];
constructor(private makeservice: MakeService) { }
ngOnInit() {
this.makeservice.getMakes().subscribe(makes=>{
this.makes=makes;
console.log("MAKES",this.makes);
});
}
只需从中删除“:any[]”数据类型,它就可以工作,但我需要将JSON对象从服务传递给组件 您不再需要映射到JSON,因此这就足够了:
getMakes(){
return this.http.get('/api/myAPI');
}
但是,这返回一个可观察的,而不是承诺,因此您必须订阅返回值才能得到结果。如果您想继续履行承诺,您可以这样做:
getMakes(){
return this.http.get('/api/myAPI').toPromise();
}
您不再需要映射到JSON,因此这就足够了:
getMakes(){
return this.http.get('/api/myAPI');
}
但是,这返回一个可观察的,而不是承诺,因此您必须订阅返回值才能得到结果。如果您想继续履行承诺,您可以这样做:
getMakes(){
return this.http.get('/api/myAPI').toPromise();
}
试试下面的方法
getMakes(){
return this.http.get('/api/myAPI')
}
在成分上,
constructor(public data:DMakeService ){
this.data.getMakes().subscribe(data=>{
console.log(data);
})
}
试试下面的方法
getMakes(){
return this.http.get('/api/myAPI')
}
在成分上,
constructor(public data:DMakeService ){
this.data.getMakes().subscribe(data=>{
console.log(data);
})
}
根据。您应该始终订阅httpclient
始终订阅强>
HttpClient方法在您调用之前不会开始其HTTP请求
订阅()方法返回的可观察对象。这是真的
对于所有HttpClient方法
const req=http.get('/api/heroes');
//已发出0个请求-未调用.subscribe()。
req.subscribe();
//1提出请求。
req.subscribe();
//2提出的请求。
根据。您应该始终订阅httpclient
始终订阅强>
HttpClient方法在您调用之前不会开始其HTTP请求
订阅()方法返回的可观察对象。这是真的
对于所有HttpClient方法
const req=http.get('/api/heroes');
//已发出0个请求-未调用.subscribe()。
req.subscribe();
//1提出请求。
req.subscribe();
//2提出的请求。