类型'Observable <response>'上不存在属性'toPromise'

时间:2016-06-29 05:23:56

标签: angular typescript rxjs angular2-services

import { Headers, Http } from '@angular/http';

@Injectable()
export class PublisherService{

    private publishersUrl = 'app/publisher';

    constructor(private http: Http) { }

    getPublishers(): Promise<Publisher[]>{
        return this.http.get(this.publishersUrl)
                   .toPromise()
                   .then(response => response.json().data) 
                   .catch(this.handleError);
    }
}    

我收到此错误:

  

属性'toPromise'在类型'Observable'.any

上不存在

3 个答案:

答案 0 :(得分:156)

您需要像这样添加运算符:

import 'rxjs/add/operator/toPromise';

这是您要使用的每个rxjs运算符所必需的。

答案 1 :(得分:10)

尝试添加“响应”&#39;来自&#39; @ angular / http&#39;的进口声明 像这样:

rerere

此外,我注意到你没有从角度核心导入Ingectable 虽然您使用@Injectable装饰器。

import {Http, Headers, Response} from '@angular/http';

答案 2 :(得分:6)

在开头使用此导入

import {Observable} from "rxjs/Rx";