使用角度为5的HttpClient模块从mysql获取数据时出错

时间:2018-01-16 09:05:14

标签: angular httpclient angular5

我创建了一个服务来获取数据,我遇到了以下错误:

  

错误TypeError:this.http.get(...)。map不是函数

enter image description here

我正在使用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;
        }
      );
  }

1 个答案:

答案 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