我試着按照angular.io上的教程(Tour the Heroes) 但是,我試着在一些JSON上做出真正的GET請求。Angular2 - TypeError:this.http.get(...)。toPromise不是一個函數
我的代碼如下所示:
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
是heroe.ts
basicly副本TOH這樣:
export class User {
id: number;
name: string;
}
我如何在服務中調用此特定方法: 首先我儘量多的東西,但在調試時我儘量只CONSOLE.LOG這麼:
console.log(this.userService.getUsersHttp());
當頁面加載在控制檯我發現多個錯誤: 第一個是:
EXCEPTION: TypeError: this.http.get(...).toPromise is not a function
第二個是:
EXCEPTION: TypeError: this.http.get(...).toPromise is not a functionBrowserDomAdapter.logError @
服務它看起來很好。我在這一行加入我的服務app.module.ts
:
providers: [ HTTP_PROVIDERS, UserService ]
和它的作品,如果我直接與像一些函數返回值(和註釋掉調用getUsertHttp
功能):我試圖描述的一切
getUsers() {
return [{'id': 1, 'name': 'User1'}, {'id': 2, 'name': 'User2'}];
}
如果問題有點長,這可能很重要,非常抱歉。 請大家給我提示我做錯了什麼?
你能也粘貼index.html,然後main.ts?也許在填充中缺少core-js或es6-shim。 –