我创建了一个服务来获取数据,我遇到了以下错误:
错误TypeError:this.http.get(...)。map不是函数
我正在使用HttpClient
模块。这是我的剧本:
import {Injectable} from '@angular/core';
import { HttpClient } from '@angular/common/http';
@Injectable()
export class Api{
public data: any = [];
constructor(private http: HttpClient){ }
getPartnersName(){
return this.http.get('http://aff.local/getPartners.php', {
observe: 'response',
responseType: 'json'
}).map(
(data)=>{
console.log(data)
},
error=>{
console.log(error);
}
);
}
}
修改
我仍然看不到组件中的数据:
ngOnInit(){
this.api.getPartnersName().subscribe(
(data)=>{
this.data = data;
}
);
}
答案 0 :(得分:2)
现在我知道了这个问题。使用HttpClient
,您需要导入map
函数并将其与pipe
一起使用。同时删除responseType
- 默认设置为json
。
import { map } from 'rxjs/operators/map'
方法
return this.http.get('http://aff.local/getPartners.php', {
observe: 'response'
}).pipe(
map(data => {
console.log(data);
return data;
})
);
只是为了记录。您可以使用do
函数代替map
。