当前位置: 首页 > 知识库问答 >
问题:

Angular2-TypeError:这个。http。得到(…)。toPromise不是一个函数

祝宾白
2023-03-14

我试着按照教程angular.io(游览英雄)但不是教程,我试着在一些JSON上提出真正的GET请求。

我的代码如下所示:

  private userUrl = 'https://jsonplaceholder.typicode.com/users';
  constructor(private http: Http) {}

  getUsersHttp(): Promise<User[]> {
    return this.http.get(this.userUrl)
      .toPromise()
      .then(response => response.json().data as User[])
      .catch(this.handleError);
  }

为了服务,我只进口一些基本的东西:

import { Injectable }     from '@angular/core';
import { Headers, Http, Response } from '@angular/http';
import { User } from './user';

其中user.ts是TOH中heroe.ts的基本副本,所以:

export class User {
  id: number;
  name: string;
}

如何在服务中调用此特定方法:首先,我尝试多种方法,但在调试时,我只尝试控制台。将其记录为:

 console.log(this.userService.getUsersHttp());

在控制台中加载页面时,我发现多个错误:第一个错误是:

例外:TypeError:这是一个错误。http。得到(…)。toPromise不是一个函数

第二个是:

this.http.get(). toPromise不是一个函数BrowserDomAdapter.log错误@

服务本身看起来不错。我将我的服务添加到应用程序。单元ts在此行中:

providers: [ HTTP_PROVIDERS, UserService ]

它的工作原理,如果我直接返回数据与一些函数,如(和注释出调用getUsertHttp函数):

  getUsers() {
    return [{'id': 1, 'name': 'User1'}, {'id': 2, 'name': 'User2'}];
  }

我试着描述所有可能重要的事情,若问题有点长,那个么很抱歉。伙计们,你们能告诉我我做错了什么吗?

共有1个答案

罗星洲
2023-03-14

看起来你错过了导入:

导入'rxjs/add/operator/toPromise'

 类似资料:
  • 我有以下服务,这是工作良好,直到今天我得到了这个错误 当我调试这段代码时,它会在捕获方法时崩溃。

  • 问题内容: 我正在尝试使用jQuery和Ajax,并且使用了这种方法。但是我收到错误$ .toJSON不是firebug中的函数。问题出在哪里?我使用jquery 1.3.2。谢谢 问题答案: 没错 没有功能:http : //api.jquery.com/jQuery.toJSON。也许您想使用它。

  • 我试图在代码中使用以下服务: 问题是,在运行时,它会抱怨: 我已经定义res的数据类型为响应,但仍然抱怨 如果我用订阅替换地图,它工作正常:

  • 问题内容: 我在尝试简化导入时遇到webpack TypeError。以下代码可以正常工作。在这里,我导入了一个从调用的React高阶组件(HOC)。 core / components / form / index.js (对进行命名输出) login-form.jsx (导入和使用) 但是,我想将导入简化为just 。所以,我再出口的和进口它。请参见下面的代码: core / index.js

  • 我有这个功能: 不知什么原因,我得到以下错误: 我看了这篇文章:https://stackoverflow.com/questions/44176021/nodejs-res-send-is-not-a-function 它看起来像另一只虫子。 我怎样才能修好它?

  • 我有一个打字稿2类,目标是ES5。当我运行它时,我在控制台的主题行中得到了错误。Switch语句工作正常,但增量()和减量()方法不执行。