服务/提供者中的HTTP请求

时间:2018-04-01 16:08:51

标签: ionic-framework httprequest

我想在提供程序中获取所有HTTP请求,并从不同的组件访问它。 但我在退货声明中遇到了一个问题。

请在db.ts中找到我的提供者代码:

  public getData(endPoint) {
    this.http.get('http://localhost:3000/' + endPoint + '?order=id.asc')
    .map(res => res.json())
    .subscribe(
      (data) => {
        var dataRetrieved = [];

        for (var i=0 ; i<data.length; i++) {
          dataRetrieved.push(data[i]);
        }

        return dataRetrieved;
      },
      (err) => {
        console.log(err);
        return 'error';
    });
  }

我想检索组件中的数据(home.ts):

this.data = db.getData('comments');

this.data的声明是:

public data: Array<{
    id,
    title,
    description
  }>;

但我有一个问题'不可能分配'void“类型来输入”{id:any,title:any,description:any} []“'。

你能帮忙吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

发生错误是因为函数getData()的返回类型为void,而您在getData()中保留响应的变量属于Array<{id, title, description}>类型这显然是不匹配的。您可以在此处执行以下操作来解决此问题:

  1. 制作data类型的any - &gt; public data: any
  2. Array<{id, title, description}>返回getData() - &gt; public getData(): Array<{id, title, description}>